莫代尔不工作,渲染后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}); 
} 

Here it is your example working properly