私はReactフックでかなり新しいです、connect
、mapStateToProps
などをuseSelector
、useDispatch
。これは私が持っているものです:
_import React from 'react';
import { useSelector } from 'react-redux';
function MyComponent(props) {
const data = useSelector(state => state.app.loadingData);
return (
<div>
{data}
</div>
);
}
_
https://react-redux.js.org/api/hooks によると、これはよく書かれています。これは私のRedux DevToolsコンソールです:
したがって、app
はredux状態ツリーに存在し、loadingData
も存在します。それにも関わらず、私のブラウザコンソールはconst data = useSelector(state => state.app.loadingData);
を指しており、このエラーがあることを知らせています:
Uncaught TypeError:Object(...)は関数ではありません
それで、私は何が間違っているのですか、ここで何が欠けていますか?
解決:
多分最善の方法、または最もきれいな方法ではないかもしれませんが、私のための実用的な解決策:
const data = useSelector(state => state.getIn(['app', 'loadingData']);
これがお役に立てば幸いです。このソリューションを改善できるとしたら、reduxチームがここに光を提供するかもしれません。