Ошибка в <Provider>- Проверьте метод рендеринга `Provider`. реагируют-перевождь - PullRequest
0 голосов
/ 14 января 2019

enter image description here введите описание изображения здесь

Код: это мой файл index.js

index.js

    import { Provider } from "react-redux";
    import { createStore } from 'redux';

    import App from './app';

    import reducer from './store/reducer';

    const store = createStore(reducer);
    console.log("Store ..."+store);
    console.log(Provider);

    ReactDOM.render((
      <Provider store={store}>
        <App/>
      </Provider>
    ), document.getElementById('root'));

Код: это мой файл reducer.js

    reducer.js
    import * as actionTypes from './actions';

    const initialState = {
    assistants:[],
    fetchInProgress:true
    }

    const reducer = (state = initialState, action) =>{

    return state;
    };

    export default reducer;

Код: это мой файл app.js app.js

class App extends Component{
render(){
return(
  <HashRouter>
    <Switch>
    <Route exact path="/login" name="Login Page" component={Login}/>
    <Route exact path="/register" name="Register Page" component= 
    {Register}/>
    <Route exact path="/404" name="Page 404" component={Page404}/>
    <Route exact path="/500" name="Page 500" component={Page500}/>
    <Route path="/" name="Home" component={Full}/>
    </Switch>
  </HashRouter>
  );
 }
 }

 export default App;

Ошибка: необработанная ошибка: недопустимый тип элемента: ожидается строка (для встроенных компонентов) или класс / функция (для составных компонентов), но получено: object.

Проверьте метод рендеринга Provider.

пожалуйста, обратитесь к обоим изображениям для ошибки. Я получаю сообщение об ошибке, пожалуйста, проверьте ваш метод рендеринга компонента провайдера, но я не могу изменить метод рендеринга провайдера. потому что он импортировал класс из redux, поэтому, пожалуйста, помогите мне с этой проблемой, с которой я столкнулся в последние два дня и не могу решить.

Ответы [ 4 ]

0 голосов
/ 20 января 2019

Я попытался импортировать thunk, чтобы решить проблему с типом данных, но это не решение.

0 голосов
/ 17 января 2019

Несовместимость с предыдущим кодом и новыми версиями React или Redux.
У меня была эта проблема до тех пор, пока я не понизил версию своих установленных инструментов, посмотрите сравниваемый прикрепленный образ файлов package.json.
enter image description here Я не знаю, какой файл является виновником.
С линейкой на правой стороне экрана это работает, с другой я получаю ошибку независимо от того, что я делаю.
Различия версий выделены желтым фоном.
Я полагаю (не проверено), что проблема связана с различием версий пакетов реагировать и реагировать на ошибки.

Виктор Нуньес предложил решение:

  1. Удалить файл package-lock.json и папку node_modules
  2. Удалить все содержимое «зависимостей» на package.json
  3. Пробег npm install --save react react-dom react-redux react-scripts redux

Вам может потребоваться установить другие пакеты в дополнение к перечисленным выше.

0 голосов
/ 19 января 2019

То же самое с Макс. Началось с 404 от Google. Ребята, вы тоже получаете угрозы безопасности из файла блокировки? Не уверен, как изменить версию файла блокировки, чтобы она была гибкой, если это возможно.

0 голосов
/ 15 января 2019

Я думаю, что ваша проблема с редуктором, который вы используете. Вы использовали функцию combReducers для объединения ваших редукторов?

import { createStore, combineReducers } from "redux";


const store = createStore(combineReducers({ 
    //...all your reducers 
}));

Пример рабочей песочницы

Сравните с вашим кодом. Может быть, начать с удаления всех ваших маршрутов. Проблема может быть там

...