代码之家  ›  专栏  ›  技术社区  ›  deadcoder0904

将提供程序包装在同一组件throws元素类型中无效:应为字符串(对于内置组件)或类/函数,但得到:对象

  •  1
  • deadcoder0904  · 技术社区  · 6 年前

    https://codesandbox.io/s/nw303w6jxl

    Provider ./src/index.js

    const App = () => (
      <div className="container">
        <Mobx />
        <hr />
        <Provider store={store}>
          <Redux />
        </Provider>
      </div>
    );
    

    & ./src/redux.js

    export default (
      <Provider store={store}>
        <ConnectReduxApp />
      </Provider>
    );
    

    未捕获错误:不变量冲突:元素类型无效:应为

    它起作用了,但我不知道为什么会发生?我查过了 typeof /SRC/还原.js

    console.log(
        typeof(
           <Provider store={store}>
             <ConnectReduxApp />
           </Provider>
        )
    );
    

    &它是一个 object

    1 回复  |  直到 6 年前
        1
  •  4
  •   rowinbot    6 年前

    这是因为您没有导出返回JSX的函数,也没有导出带有返回JSX的呈现方法的类,而是导出JSX本身。

    {reduxImported}

    import reduxImported from './src/redux.js'
    ...
    render() {
      <Container>
        {reduxImported}
        <MobX />
      </Container>
    }
    

    export default () => (
      <Provider store={store}>
        <ConnectReduxApp />
      </Provider>
    )