我是本机的新手,我正在尝试使用对勾标记进行文本选择,并仅选择一个Text Element,我是否必须使用按钮代替?
反应代码
<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>
样式表
mainContainer: {
marginTop: 20,
},
detailsContainer: {
backgroundColor: '#FFF',
marginTop: 10,
},
title: {
paddingLeft: 16,
color: '#979797',
textTransform: 'uppercase',
},
答案 0 :(得分:1)
您需要保留从列表中选择的项目的变量。
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>
)
}
我希望您将自己的本机代码放入一种方法中。
答案 1 :(得分:0)
您必须使用react-native中的TouchableOpacity
和react-native-elements
中的Icon,然后执行此操作。
<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()
被按下时触发触发您定义的功能。
我们将检查一项是否处于选中状态,从而在调用onPress
时将其选中,并且显然取消选中另一项。
要使用应用程序的更改状态,请使用this.setState()
并获取状态this.state
。如果您不了解状态,建议您先here先阅读一下。