【问题标题】:React.createElement: type is invalid — expected a stringReact.createElement:类型无效 - 需要一个字符串
【发布时间】:2018-01-18 12:48:37
【问题描述】:

试图让 react-router-dom 和 react-redux 玩得很好,但在浏览器控制台中出现以下错误:

警告:React.createElement:类型无效 - 应为字符串(用于内置组件)或类/函数(用于复合组件)但得到:未定义。您可能忘记从定义组件的文件中导出组件。

index.js

import React from 'react';
import ReactDom from 'react-dom';
import Provider from 'react-redux';
import { createStore } from 'redux';
import reducer from './src/reducers/Index';
import Root from './src/views/Root';

let store = createStore(reducer)

ReactDom.render(
    <Provider store={store}>
        <Root />
    </Provider>,
    document.getElementById('content')
);

reducer (Index.js)

import {combineReducers} from 'redux';
import Login from './Login';

export default combineReducers({
    Login
})

reducer (Login.js)

export default function login(state = 'Login', action) {
  switch (action.type) {
    case 'LOGINLOADING':
      return state + 1
    case 'LOGINLOADED':
      return state - 1
    default:
      return state
  }
}

Root.js

import React from 'react';
import BrowserRouter from 'react-router-dom';
import App from './App';

class Root extends React.Component {
    render(){
        return (
            <BrowserRouter>
                <App />
            </BrowserRouter>
        );
    }
}

export default Root;

App.js

import React from 'react';

class App extends React.Component {
    render(){
        return (
            <div>
                <p> Hello Kitty </p>
            </div>
        );
    }
}

export default App;

【问题讨论】:

标签: reactjs react-router react-redux


【解决方案1】:
import BrowserRouter from 'react-router-dom';

请注意 BrowserRouter 不是 react-router-dom 包的默认导出。 因此,您需要用花括号声明它:

import { BrowserRouter } from 'react-router-dom';

【讨论】:

    【解决方案2】:

    抱歉,我已修复此问题。

    import {createStore} from 'redux';
    

     import createStore from 'redux';
    

    【讨论】:

      猜你喜欢
      • 2017-08-06
      • 2019-11-27
      • 2022-12-12
      • 1970-01-01
      • 1970-01-01
      • 2020-01-20
      • 2019-01-15
      • 2018-08-02
      • 1970-01-01
      相关资源
      最近更新 更多