2017-12-15 17 views
0

Reduxレデューサーは副作用がなくてはなりません。しかし、コンテンツが店舗の状態に基づいているブラウザでファイルのダウンロードをトリガーする必要がある場合はどうなりますか?確かにこれは副作用としてカウントされるべきですか?次のようなものがうまくいくのでしょうか、代替の方法を探していなければなりませんか?Reduxレデューサーの副作用

case 'SAVE_GRID': { 
    const { json } = state 
    fileDownload(json, 'data.json', 'application/json') 
    return state 
} 

答えて

1

あなたは非常に複雑な状態遷移を持っている場合を除き、実際のfileDownloadはないで、アクションの作成者に起こるべき減速機。減速器は、状態の合併/縮小を担当する必要があり、それがすべてです。

アクション:

export const saveGrid = (json) => { 
    return (dispatch) => { 
     fileDownload(json, 'data.json', 'application/json') 
      .then(() => { 
       dispatch({ type: 'SAVE_GRID', json }); 
      }); 
    } 
} 

減速:

case 'SAVE_GRID': { 
    return { 
     ...state, 
     json: action.json 
    } 
} 
関連する問題