我正在尝试从状态渲染随机数组项,以便(例如-[0]在重新加载时可能更改为[2]。]
这是我到目前为止尝试过的,请提供任何提示或想法吗?
这是我的状态:
state = {
randomItem: ['one', 'two', 'three', 'four'],
},
selected: null,
clicked: false,
};
这是我的handleClick函数,它将随机化从数组中获取的项目
handleClick = () => {
this.setState({
clicked: true,
selected: this.state.randomItem.selected[
Math.floor(Math.random() * this.state.selected.length)
],
});
};
这是我试图退还的方式
<View>
<TouchableOpacity onPress={this.handleClick}>
<Text>{this.state.clicked && this.state.selected}</Text>
</TouchableOpacity>
</View>
答案 0 :(得分:3)
我相信您是要在handleClick()中说randomItem
而不是randomStatus
。
尝试像这样更改handleClick():
handleClick = () => {
this.setState(prev => ({
...prev,
clicked: true,
selected:
prev.randomItem[Math.floor(Math.random() * prev.randomItem.length) + 0]
}));
};
此外,我认为您所在的州也有错字。应该是:
state = {
randomItem: ["one", "two", "three", "four"],
selected: null,
clicked: false
};