【发布时间】:2018-07-13 14:10:49
【问题描述】:
我正在尝试制作一个带有文本的简单按钮,如果用户点击它,它会改变它的颜色和文本。这个带有文本的按钮显示在我的 Flatlist 中,如果点击它,我现在可以更改上面的文本,但问题是我的 Flatlist 中的其他带有文本的按钮也是变化。
我的目标是更改将被点击的单个按钮。
这是我的代码。
export default class tables extends Component {
constructor(props){
super(props)
this.state = {
data: [],
...
toggle: true,
}
}
_onPress() {
const newState = !this.state.toggle;
this.setState({ toggle: newState })
}
render() {
const { toggle } = this.state;
const textValue = toggle?"Available":"Occupied";
const buttonBg = toggle?"dodgerblue":"white";
const textColor = toggle?"white":"black";
return (
<View>
<FlatList
....
renderItem = {({ item }) =>
<View>
<Text>Table No: { item.tbl_id }</Text>
<TouchableHighlight
onPress = { () => this._onPress()}>
<Text>{textValue}</Text> // Button with text
</TouchableHighlight>
<View>
<TouchableHighlight
....>
<Text>DINE-IN</Text>
</TouchableHighlight>
<TouchableHighlight
....
<Text>TAKE-OUT</Text>
</TouchableHighlight>
</View>
</View>
}
/>
</View>
)
}
}
【问题讨论】:
标签: javascript android css reactjs react-native