【发布时间】:2019-02-19 01:32:30
【问题描述】:
我正在尝试切换 ios Switch 以响应本机。但是一旦我改变它,开关就会回到初始位置。
我有什么:
class ABC extends Component {
constructor(props) {
super(props)
this.state = {
obj: []
}
}
fetch(){
// fetch something from remote server, set it to state object array
}
setStatus(id, value){
var temp = [...this.state.obj]
temp.map((t) => {
if (t.id == id) {
t.flag = value
}
})
this.setState({ obj: temp })
}
render() {
return (
<View>
<FlatList
data={this.state.obj}
renderItem={({ item }) =>
<View>
<Text>{item.name}</Text>
<Switch
onValueChange={(val) => this.setStatus(item.id, val)}
value={item.flag}
/>
</View>
}
keyExtractor={({ id }, index) => id.toString()}
/>
</View>
);
}
}
我记录了obj 状态的前后值,它们似乎更新了。是否应该再次呈现 FlatList(如网页刷新)?还是我缺少什么?搜索SO 的答案,找不到我的错误。
【问题讨论】:
标签: react-native react-native-ios uiswitch