2016-06-24 6 views
0

私はListViewのフィルタを使って、アイテムを並べ替え/注文できるようにしています。基本的に私はstateにパラメータを保存しており、<Modal>のいくつかのトグル/選択フィールドを介して更新されています。どのように状態をvar/constに保存して更新を停止するのですか?

モーダルにキャンセル&適用ボタンがあります。フィルタを変更した後にを選択すると、ListViewの内容が更新されます。ただし、設定変更後にをキャンセルする場合は、をキャンセルすると、フィルタモーダルが起動される前の状態に戻ります。

だから私はこれをやっている:私はthis.state.filterValues調整するたび

// Update filterValues state 
adjustFilterValue(filterSection, newValue) { 

    if (this.state.hasAdjustedFilters === false) { 

     const filterValues = this.state.filterValues; 

     this.setState({ 
      hasAdjustedFilters: true 
     }) 
    } 

    var newFilterValues = defaultFilterValues; 

    newFilterValues[filterSection] = newValue; 

    this.setState({ 
     filterValues: newFilterValues 
    }) 
} 

は、しかし - newFilterValuesをさんがあまりにも更新されます。

どうすれば保存できますか?& 隔離オブジェクトは状態からですか?

答えて

-1

あなたはライフサイクルフックを使用して、初期状態を保存することができます。

componentDidMount() { 
    this._initialState = this.state; 
} 

を後で、復帰の場合には、単にsetState(this._initialState);

関連する問題