redux - 错误- 检查 `Provider` 的渲染方法。反应还原
问题描述
代码:这是我的 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;
错误:未捕获错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。
检查Provider
.
请参阅两张图片以了解错误。我收到错误,请检查您的提供程序组件渲染方法,但这不是我要更改提供程序渲染方法的。因为它是从 redux 导入的类,所以请帮我解决这个问题,我从过去两天面临的这个问题无法解决。
解决方案
与以前的代码和新的 React 或 Redux 版本不兼容。
在我降级安装的工具之前,我遇到了这个问题,请参阅 package.json 文件比较的附件图像。
我不知道哪个文件是罪魁祸首。
使用屏幕右侧的阵容,它可以工作,而另一方面,无论我做什么,我都会收到错误。
版本差异以黄色背景突出显示。
我猜(未经测试)问题源于 react 和 react-dom 包之间的版本差异。
Victor Nunes 建议的解决方案是:
- 删除
package-lock.json
文件和node_modules
文件夹 - 删除“依赖项”的所有内容
package.json
- 跑
npm install --save react react-dom react-redux react-scripts redux
除了上面列出的软件包之外,您可能还需要安装其他软件包。
推荐阅读
- sql - 在列值上连接两个表并根据其他列进行排序
- python - 使用本地 JSON 文件填充 Django DB
- django - 如何使 django url 动态化
- newrelic - 尽管从 New Relic 仪表板中可以看到服务器,但 REST API 未返回任何服务器
- ios - 使用通用可编码 API 客户端处理非 JSON 响应
- javascript - 如果索引大于使用 v-for 循环在 VUEJS 中的值,我如何显示(+10 多个)
- pycharm - PyCharm 的 Markdown 渲染很漂亮。有没有办法将它按原样保存到 pdf 或 html 文件中?
- string - 在golang中替换字符串中的一个字符
- uno-platform - 无法覆盖 OnApplyTemplate
- docker - Dockerfile COPY 不适用于 cloud-build