React Boilerplate:substate.get不是函数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React Boilerplate:substate.get不是函数相关的知识,希望对你有一定的参考价值。

这是与substate.get() is not a function using React Boilerplate相同的问题,但我没有得到这个问题的解决方案。

我想仅在一个文件中定义我的初始状态。这是初始化状态的正确方法。

我在app.js中添加了

const initialState = fromJS({
  cloud: [
    {
      machine_name: 'trust.zscaler.net',
      domain: 'Zscaler.net',
        },
      ],
    });
const history = createHistory();
const store = configureStore(initialState, history);

在我的container / selectors.js中

const selectCloud = (state) => state.get('cloud');

const makeSelectCloudName = () => createSelector(
  selectCloud,
  (cloudState) => cloudState.get('domain')
);

在我的container / index.js中

const mapStateToProps = createStructuredSelector({
  cloud: makeSelectCloudName(),
});

const mapDispatchToProps = (dispatch) => ({
  setCloud: (value) => {
    dispatch(setCloud(value));
  },
})

const withReducer = injectReducer({ key: 'cloud', reducer });
const withSaga = injectSaga({ key: 'cloud', saga });
const withConnect = connect(mapStateToProps, mapDispatchToProps);

export default compose(
  withReducer,
  withSaga,
  withConnect,
)(CloudSelect);
答案

这实际上是云状态域的直接选择器

const selectCloud = (state) => state.get('cloud');

我想在这里你错过了一步你应该用云替换域以选择高级对象

const makeSelectCloudName = () => createSelector(
  selectCloud,
 // Select high level cloud array
  (cloudState) => cloudState.get('cloud')
);

以上是关于React Boilerplate:substate.get不是函数的主要内容,如果未能解决你的问题,请参考以下文章

React-boilerplate+grommet,让 sass 和 webpack 一起工作

javascript React Component Boilerplate

使用 React 路由器 v4 在 react-boilerplate 中加载异步减速器和 sagas

无法正确设置 react-boilerplate:“npm ERR!ngrok - 不支持平台 darwinarm64。”

React-Boilerplate在没有端口的情况下运行生产

无法将 sqlite3 编译为本机插件,Electron React Boilerplate 项目