繁体   English   中英

Native-Base 3:菜单项的 Onpress

[英]Native-Base 3: Onpress for MenuItem

所以我正在使用 React-Native 和 Native-Base 3 制作应用程序。但是,我似乎无法弄清楚如何为菜单项制作 onPress。 我可以成功地渲染它,但我似乎无法在文档或其他地方找到当你按下它时实际做某事的例子。 任何解决方法? 下面是我的代码示例

 <Box style={styles.topNavItems}>
                <Menu
                trigger={(triggerProps) => {
                    return <Pressable><IconButton {...triggerProps} icon={<Icon name={'account-circle-outline'} size={30}/>} /></Pressable>
                  }}>
                      <Menu.Item>Profile</Menu.Item> //pressing this should invoke a function 
                      <Menu.Item>Account</Menu.Item>
                      <Menu.Item>Settings</Menu.Item>
                      <Menu.Item>Tutorials</Menu.Item>
                      <Menu.Item>Help</Menu.Item>
                      <Menu.Item>Sign Out</Menu.Item>

                </Menu>

我也在使用 native-base 3 来开发 react native。

似乎没有用于处理 <Menu.Item /> 的选择类型事件的官方 API。

我的解决方法是通过 .map() 渲染 Menu.Item 并将 onPress 处理添加到 <Menu.Item /> 中的文本:

        const menuItems = ['Profile', ..., 'Sign Out'];
        const handMenuItemSelect = (menuItem) => {...};
    
        ...
    
        return (
          ...
            {menuItems.map(menuItem => {
                return <Menu.Item>
                       <Text onPress={(menuItem) => handMenuSelect(menuItem)}
                           {menuItem}
                       </Text>
                    </Menu.Item>
                    }}
          ...
        )

,其中也来自原生基础。

您可以简单地在Menu.Item本身中添加onPress 您可以执行以下操作:

  <Menu
    trigger={triggerProps => {
      return (
        <Pressable {...triggerProps}>
          <ThreeDotsIcon size={30} />
        </Pressable>
      );
    }}>
    <Menu.Item
      onPress={() => {
        alert('Profile pressed');
      }}>
      Profile
    </Menu.Item>
    <Menu.Item
      onPress={() => {
        alert('Account pressed');
      }}>
      Account
    </Menu.Item>
    <Menu.Item
      onPress={() => {
        alert('Settings pressed');
      }}>
      Settings
    </Menu.Item>
    <Menu.Item
      onPress={() => {
        alert('Tutorials pressed');
      }}>
      Tutorials
    </Menu.Item>
    <Menu.Item
      onPress={() => {
        alert('Help pressed');
      }}>
      Help
    </Menu.Item>
    <Menu.Item
      onPress={() => {
        alert('Sign Out pressed');
      }}>
      Sign Out
    </Menu.Item>
  </Menu>

<input>和<textarea></textarea>未在 native-base 中对齐,React Native&lt;/div&gt;<div id="text_translate"><p> 我想使用原生基础将单行输入和多行输入放入表单中,但它们未正确对齐垂直线。 有什么我遗漏的或者不应该一起使用的吗? 谢谢你。</p><p> package.json 的一部分</p><pre> "expo": "~37.0.3", "native-base": "2.13.8", "react": "~16.9.0", "react-dom": "~16.9.0", "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",</pre><p> 我的代码</p><pre class="lang-js prettyprint-override"> &lt;Content padder&gt; &lt;Form&gt; &lt;Item regular floatingLabel&gt; &lt;Label style={{paddingTop: 2}}&gt;Label&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt; &lt;Textarea rowSpan={5} onChangeText={content =&gt; setContent(content)} bordered placeholder="this is textarea" /&gt; &lt;/Form&gt; &lt;/Content&gt;</pre><p> <a href="https://i.stack.imgur.com/gSyge.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gSyge.png" alt="模拟器截图"></a></p><p> ========已编辑</p><p>我找到了答案,只需将 floatingLabel 替换为常规。 但是,占位符仍未对齐。</p><pre class="lang-js prettyprint-override"> &lt;Item regular&gt; &lt;Label&gt;URL&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt;</pre><p> <a href="https://i.stack.imgur.com/kWwZs.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kWwZs.png" alt="在此处输入图像描述"></a></p></div>

[英]<Input /> and <Textarea /> are not aligned in native-base, React Native

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在本机基础输入上写入默认文本 删除按钮轮廓本机基础 <input>和<textarea></textarea>未在 native-base 中对齐,React Native&lt;/div&gt;<div id="text_translate"><p> 我想使用原生基础将单行输入和多行输入放入表单中,但它们未正确对齐垂直线。 有什么我遗漏的或者不应该一起使用的吗? 谢谢你。</p><p> package.json 的一部分</p><pre> "expo": "~37.0.3", "native-base": "2.13.8", "react": "~16.9.0", "react-dom": "~16.9.0", "react-native": "https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",</pre><p> 我的代码</p><pre class="lang-js prettyprint-override"> &lt;Content padder&gt; &lt;Form&gt; &lt;Item regular floatingLabel&gt; &lt;Label style={{paddingTop: 2}}&gt;Label&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt; &lt;Textarea rowSpan={5} onChangeText={content =&gt; setContent(content)} bordered placeholder="this is textarea" /&gt; &lt;/Form&gt; &lt;/Content&gt;</pre><p> <a href="https://i.stack.imgur.com/gSyge.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/gSyge.png" alt="模拟器截图"></a></p><p> ========已编辑</p><p>我找到了答案,只需将 floatingLabel 替换为常规。 但是,占位符仍未对齐。</p><pre class="lang-js prettyprint-override"> &lt;Item regular&gt; &lt;Label&gt;URL&lt;/Label&gt; &lt;Input onChangeText={url =&gt; setUrl(url)}/&gt; &lt;/Item&gt;</pre><p> <a href="https://i.stack.imgur.com/kWwZs.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/kWwZs.png" alt="在此处输入图像描述"></a></p></div> zIndex doot可在本机卡上运行-反应本机 如何在反应原生中更改基于原生的 Picker fontSize 和 fontFamily? 无法在 ScrollView 内滚动原生 FlatList 反应原生卡(原生基础)onPress 不起作用 反应原生:有没有办法只在原生库的手风琴的 3 选项卡中定位图标? React-Native native-base 如何减少卡片项目之间的间距? React native - 安装native-base后要包含在版本控制中的文件?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM