レデューサーでストアが変更されたときにuseSelectorが更新されない。ReactJS Redux

ダニロ・クーニャ

レデューサーの状態を変えています。デバッグ時に、状態が実際に変更されたことを確認しました。しかし、コンポーネントは更新されていません。

成分:

function Cliente(props) {
    const dispatch = useDispatch()
    const cliente = useSelector(({ erpCliente }) => erpCliente.cliente)
    const { form, handleChange, setForm } = useForm(null)

...

function searchCepChangeFields() {
    //This call the action and change the store on reducer
    dispatch(Actions.searchCep(form.Cep))  
        .then(() => {   
            // This function is only taking values ​​from the old state. 
            // The useSelector hook is not updating with store
            setForm(form => _.setIn({...form}, 'Endereco', cliente.data.Endereco))
            setForm(form => _.setIn({...form}, 'Uf', cliente.data.Uf))
            setForm(form => _.setIn({...form}, 'Cidade', cliente.data.Cidade))
            setForm(form => _.setIn({...form}, 'Bairro', cliente.data.Bairro))                  
        })
}

レデューサー:

 case Actions.SEARCH_CEP:
        {
            return {
                ...state,
                data: { 
                    ...state.data,
                    Endereco: action.payload.logradouro,
                    Bairro: action.payload.bairro,
                    UF: action.payload.uf,
                    Cidade: action.payload.cidade                    
                }
            };
        }  
elad BA

オブジェクトを処理するときに直面する問題は非常に一般的です。オブジェクトのプロパティを変更しているため、小道具は変更されませんが、オブジェクト自体は反応側から変更されません。

まったく新しいオブジェクトを指定している場合でも、参照は同じままであるため、reactはプロパティオブジェクトの変更を認識しません。

次のような新しい参照を作成する必要があります。

Object.assign(state.data,data);

return {
  ...state,
  data: { 
    ...state.data,
    Endereco: action.payload.logradouro,
    Bairro: action.payload.bairro,
    UF: action.payload.uf,
    Cidade: action.payload.cidade                    
  }
}

さらに追加するには、この問題を解決するImmutable.jsライブラリについて学ぶことができます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

reduxストアが変更されたときにコンポーネントが更新されない

分類Dev

Reduxストアが変更されたときにコンポーネントが更新されない

分類Dev

アクションが実行されたときにレデューサーが状態を更新しないため、reduxストア/状態が更新されません

分類Dev

React-Redux->レデューサーが変更された状態をインデックスページに返さないのはなぜですか?

分類Dev

変異状態のため、レデューサーでReduxアクションが捕捉されない

分類Dev

React、reduxレデューサーが更新されたときにローカル状態を更新

分類Dev

Reduxレデューサーが更新された状態をUIに返さない

分類Dev

Reduxで状態が変更されたときにReactコンポーネントが再レンダリングされない

分類Dev

Reduxレデューサー-深くネストされた状態の変更

分類Dev

Reduxレデューサーの状態が正しく更新されない

分類Dev

redux-toolkitアクションがレデューサーでトリガーされない

分類Dev

正常なアクションでredux状態が更新されたときにReactコンポーネントが更新されない

分類Dev

Redux-レデューサーが呼び出されない

分類Dev

React Redux CombineReducer | レデューサーが渡されない

分類Dev

Reduxセットアップでレデューサーが呼び出されない

分類Dev

Reduxストアが更新されない

分類Dev

Reduxストアが更新されない

分類Dev

React + Redux-キャッチされていないエラー:レデューサーが関数であることが期待されました

分類Dev

データが継承されるときにReact-Reduxを使用して、ルート状態からではなくレデューサーから状態を変更する

分類Dev

(ReactJS + Redux)/ newがURLに追加されたときにフォームがロードされない

分類Dev

redux状態ストアのマップ(データ構造)の変更時にReactコンポーネントが更新されない

分類Dev

React Reduxでネストされた状態を更新していますが、構文の何が問題になっていますか?このレデューサーを書くためのより良い方法はありますか?

分類Dev

インポート時にReduxレデューサーが定義されていない理由

分類Dev

状態がreduxに変わるときに、Reactコンポーネントが更新されない

分類Dev

React-Reduxの状態が期待どおりに更新されません—レデューサー引数を変更していますか?

分類Dev

react-redux のレデューサー後に「mapStateToProps」がトリガーされない

分類Dev

Reduxに反応します。コンポーネントがReduxストアに接続されていません。別のコンポーネントでアクションとレデューサーをテストしましたが、他のコンポーネントでも機能しますか?

分類Dev

React + Redux:未定義の初期状態とレデューサーが期待どおりに呼び出されない

分類Dev

reduxストアにデータが入力された後、Reactコンポーネントが更新されない

Related 関連記事

  1. 1

    reduxストアが変更されたときにコンポーネントが更新されない

  2. 2

    Reduxストアが変更されたときにコンポーネントが更新されない

  3. 3

    アクションが実行されたときにレデューサーが状態を更新しないため、reduxストア/状態が更新されません

  4. 4

    React-Redux->レデューサーが変更された状態をインデックスページに返さないのはなぜですか?

  5. 5

    変異状態のため、レデューサーでReduxアクションが捕捉されない

  6. 6

    React、reduxレデューサーが更新されたときにローカル状態を更新

  7. 7

    Reduxレデューサーが更新された状態をUIに返さない

  8. 8

    Reduxで状態が変更されたときにReactコンポーネントが再レンダリングされない

  9. 9

    Reduxレデューサー-深くネストされた状態の変更

  10. 10

    Reduxレデューサーの状態が正しく更新されない

  11. 11

    redux-toolkitアクションがレデューサーでトリガーされない

  12. 12

    正常なアクションでredux状態が更新されたときにReactコンポーネントが更新されない

  13. 13

    Redux-レデューサーが呼び出されない

  14. 14

    React Redux CombineReducer | レデューサーが渡されない

  15. 15

    Reduxセットアップでレデューサーが呼び出されない

  16. 16

    Reduxストアが更新されない

  17. 17

    Reduxストアが更新されない

  18. 18

    React + Redux-キャッチされていないエラー:レデューサーが関数であることが期待されました

  19. 19

    データが継承されるときにReact-Reduxを使用して、ルート状態からではなくレデューサーから状態を変更する

  20. 20

    (ReactJS + Redux)/ newがURLに追加されたときにフォームがロードされない

  21. 21

    redux状態ストアのマップ(データ構造)の変更時にReactコンポーネントが更新されない

  22. 22

    React Reduxでネストされた状態を更新していますが、構文の何が問題になっていますか?このレデューサーを書くためのより良い方法はありますか?

  23. 23

    インポート時にReduxレデューサーが定義されていない理由

  24. 24

    状態がreduxに変わるときに、Reactコンポーネントが更新されない

  25. 25

    React-Reduxの状態が期待どおりに更新されません—レデューサー引数を変更していますか?

  26. 26

    react-redux のレデューサー後に「mapStateToProps」がトリガーされない

  27. 27

    Reduxに反応します。コンポーネントがReduxストアに接続されていません。別のコンポーネントでアクションとレデューサーをテストしましたが、他のコンポーネントでも機能しますか?

  28. 28

    React + Redux:未定義の初期状態とレデューサーが期待どおりに呼び出されない

  29. 29

    reduxストアにデータが入力された後、Reactコンポーネントが更新されない

ホットタグ

アーカイブ