【问题标题】:React-Native Redux store root component error: 'looking for an class component, gets an object object'React-Native Redux 存储根组件错误:'寻找类组件,获取对象对象'
【发布时间】:2017-04-27 13:09:46
【问题描述】:

这行得通:

const Router = connect()(Router);

// --- your exported main router
export default class MyExportedRouter extends React.Component {
    constructor(props) {
        super(props);
    };

    render() {
        return (
            <Provider store={store}>
                <Router scenes={scenes} />
            </Provider>
        );
    }
}

如果我改变了

const Router = connect()(Router);
...
<Router scenes={scenes} />
...

const myConnectedRouter = connect()(Router);
...
<myConnectedRouter scenes={scenes} />
...

失败并出现以下错误:

寻找一个类组件,得到一个object对象

我的完整代码在这里: https://github.com/aksonov/react-native-router-flux/blob/master/docs/REDUX_FLUX.md

【问题讨论】:

  • 你能在这里添加一点your 代码吗?
  • myconnectedroutes 组件是如何定义的?请将您定义此组件的代码部分添加到您的问题中。
  • 与RNRF官方文档相同。我已遵循所有说明并导入了正确的文件等。

标签: reactjs react-native react-redux react-native-router-flux


【解决方案1】:

myConnectedRouter 应大写,如MyConnectedRouter

connect() 返回一个“高阶 React 组件类”(https://github.com/reactjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops-mapdispatchtoprops-mergeprops-options)

React 组件必须大写 (https://facebook.github.io/react/docs/jsx-in-depth.html#html-tags-vs.-react-components)

这个问题已经在 ReactJS 的上下文中得到解决:https://stackoverflow.com/a/30373505/1905712

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2019-02-23
    • 1970-01-01
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多