莫代尔不工作,渲染后setState不工作
问题描述:
嗨,我刚刚开始与RN工作,我试图使用模态,模态必须显示图像。我使用FlatList
和用于显示模式,我使用dataSource数组中的变量来显示,但是当我改变它在状态它不更新,我甚至尝试显式调用this.render()并删除图像的Url,但不呈现调用,并且模式不起作用。莫代尔不工作,渲染后setState不工作
这里是链接到操场https://repl.it/KHLf/8
请帮助我。
答
你在这个方法
setModalVisible(visible, index) {
var tempjs = this.state.dataSource
tempjs[index].modal = visible
tempjs[index].Url = ""
this.setState({dataSource: tempjs});
}
直接修改组件的状态,这就是为什么它不更新的原因。你可以阅读更多关于它here。
为了解决它,改变方法
setModalVisible(visible, index) {
const tempjs = this.state.dataSource.map((v,i) => i !== index
? ({...v, modal: false})
: ({...v, modal : true}));
this.setState({dataSource: tempjs});
}