0
私は
processedData
とprocessedDataCopy
という2つの状態配列を持っています。私はprocessedData
のコピーをprocessedDataCopy
の中に保存しようとしています。状態変数の定数コピーを作成するprocessedDataCopy
はすぐprocessedData
データprocessedDataCopy
もprocessedData
で行った変更を反映するために、それに応じて変化する変更されるようprocessedData
に加えた変更を反映しなくてはなりません。どのように私はそれが起こることを防ぐ必要がありますか?私は、
processedDataCopy
にprocessedData
のコピーをsetState
のcomponentWillMount()
を使用して保存しました。私のコードのバージョンを簡素化は次のとおりです。
export default class ProductsPage extends Component { constructor(props) { super(props); var ds = new ListView.DataSource({rowHasChanged: (r1, r2) => r1 !== r2}); this.state = { processedData:[], processedDataCopy:[], listData:ds.cloneWithRows([]), }; } componentWillMount(){ this.state.processedData.push({multipleKeysinloop:multipleValuesinLoop}); this.setState({processedDataCopy:this.state.processedData}) this.setState({listData:this.state.listData.cloneWithRows(this.state.processedData)}) } render() { return ( <ListView dataSource={this.state.listData} renderRow={this.printData.bind(this)} /> ); } printData(){ //On some action load altered process data else reset to original processedData which is stored in processedDataCopy if(processedData is altered) this.setState({listData:this.state.listData.cloneWithRows(this.state.processedData)}) else this.setState({listData:this.state.listData.cloneWithRows(this.state.processedDataCopy)}) } }