2017-08-12 11 views
1

こんにちは私はRNで作業を始めました。モーダルで作業しようとしましたが、モーダルは画像を表示する必要があります。私はFlatListを使用し、モーダルを表示するために、私はdataSource配列で変数を使用して表示しますが、状態を変更しても更新されません、私はthis.render()を明示的に呼び出してイメージのUrlを削除しましたが、モーダルは機能しません。ここでモーダルは動作しません。setStateが動作しないとレンダリングします

は私を助けてくださいhttps://repl.it/KHLf/8

を遊び場するためのリンクです。

答えて

1

あなたは

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

にその方法を、それを修正変更するために

関連する問題