2016-10-12 8 views
1

私は以下の状態のスライス(filterText)を組み合わせています。結果をフィルタリングして文字列を保持するだけです。最初の状態を空の文字列にすることは可能ですか?それとも、全体的に大きなストアオブジェクトのスライスであってもオブジェクトでなければならないのでしょうか?私はそれを文字列として使うことができますが、各ディスパッチごとに州の新しいコピーを作成するにはどうすればいいですか?現在のreturn {...state, ...action.data}は奇妙に見えます。react redux storeのスライスはオブジェクトでなければならないのですか?

const initialState = '' 

const filterText = (state = initialState, action) => { 
    switch (action.type) { 
    case constants.FILTER_CONTACTS: 
     return { 
     ...state, 
     ...action.data 
     } 
    default: 
     return state 
    } 
} 

export default filterText 

答えて

3

初期状態は文字列にすることができますが、すべてのスイッチの場合、文字列も返す必要があります。

状態を更新するときは、状態全体が新しい文字列を返す文字列であるため、コピーを作成する必要はありません。変更がなければ、古い状態を返すだけです。

const initialState = '' 
 

 
const filterText = (state = initialState, action) => { 
 
    switch (action.type) { 
 
    case constants.FILTER_CONTACTS: 
 
     // return a string here, I'm assuming action.data is a string 
 
     return action.data; 
 
    default: 
 
     return state 
 
    } 
 
} 
 

 
export default filterText

この情報がお役に立てば幸いです。

関連する問題