首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Native Select Text with Checkmark

React Native Select Text with Checkmark
EN

Stack Overflow用户
提问于 2019-04-11 22:06:47
回答 2查看 1.4K关注 0票数 3

我是react native的新手,我正在尝试用复选标记进行文本选择,并且只选择一个文本元素,我必须使用按钮吗?

like this in the picture

React代码

代码语言:javascript
复制
<View style={styles.mainContainer}>
  <Text style={styles.title}>User Role</Text>
  <View style={styles.detailsContainer}>
    <View style={styles.rowContainer}>
      <Text style={styles.row}>Admin</Text>
    </View>
    <View style={styles.rowContainer}>
      <Text style={styles.row}>Assistant</Text>
    </View>
  </View>
</View>

样式表

代码语言:javascript
复制
mainContainer: {
    marginTop: 20,
  },
 detailsContainer: {
    backgroundColor: '#FFF',
    marginTop: 10,
  },
title: {
    paddingLeft: 16,
    color: '#979797',
    textTransform: 'uppercase',
  },
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-11 22:24:47

您必须使用来自react-native的TouchableOpacity和来自react-native-elements的图标,然后执行此操作。

代码语言:javascript
复制
      <View style={styles.mainContainer}>
        <Text style={styles.title}>User Role</Text>
        <View style={styles.detailsContainer}>
          <TouchableOpacity
            style={styles.rowContainer}
            onPress={() => {
              this.setState({ adminIsChecked: true, assistantIsChecked: false });
            }}
          >
            <View style={{ flexDirection: 'row' }}>
              <Text style={styles.row}>Admin</Text>
              {this.state.adminIsChecked ?
                (<Icon name='check' />)
                :
                (null)
              }
            </View>
          </TouchableOpacity>
          <TouchableOpacity
            style={styles.rowContainer}
            onPress={() => {
              this.setState({ assistantIsChecked: true, adminIsChecked: false });
            }}
          >
            <View style={{ flexDirection: 'row' }}>
              <Text style={styles.row}>Assistant</Text>
              {this.state.assistantIsChecked ?
                (<Icon name='check' />)
                :
                (null)
              }
            </View>
          </TouchableOpacity>
        </View>
      </View>

可触摸项的onPress()在按下它们时会收到一个触发器,从而触发您在中定义的功能。

如果状态为checked,我们将选中一项,在调用onPress时使其处于选中状态,显然,取消选中另一项。

为了使用更改应用程序的状态,我们使用this.setState()和来获取状态this.state。如果你对状态感到迷惑,我建议你先阅读here

票数 1
EN

Stack Overflow用户

发布于 2019-04-11 22:13:54

您需要将列表中的选定项保留为一个变量。

代码语言:javascript
复制
 state = {
            selectedId: null
        }


     renderItem({ item }) {
        return (
            <TouchableOpacity
                onPress={() => {
                    this.setState({
                        selectedId: item.id
                    })
                }}>
                <View style={styles.mainContainer} >
                    <Text style={styles.title}>User Role</Text>
                    <View style={styles.detailsContainer}>
                        <View style={styles.rowContainer}>
                            <Text style={styles.row}>Admin</Text>
                        </View>
                        <View style={styles.rowContainer}>
                            <Text style={styles.row}>Assistant</Text>
                        </View>
                    </View>
                    {
                        this.state.selectedId === item.id ? <CHECK_MARK_IMAGE /> : null
                    }
                </View>
            </TouchableOpacity>
        )
    }

我希望你把你的react原生代码放到一个方法中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55634491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档