2017-03-04 6 views
0
  • 私はprocessedDataprocessedDataCopyという2つの状態配列を持っています。私はprocessedDataのコピーをprocessedDataCopyの中に保存しようとしています。状態変数の定数コピーを作成する

  • processedDataCopyはすぐprocessedDataデータprocessedDataCopyprocessedDataで行った変更を反映するために、それに応じて変化する変更されるようprocessedDataに加えた変更を反映しなくてはなりません。どのように私はそれが起こることを防ぐ必要がありますか?

  • 私は、processedDataCopyprocessedDataのコピーをsetStatecomponentWillMount()を使用して保存しました。私のコードのバージョンを簡素化

  • は次のとおりです。

    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)}) 
        } 
    
    } 
    

答えて

関連する問題