Reactjs IE11 React.memo+;反应重复连接问题
我正在尝试使用React.memo来记忆redux连接的组件。 我的代码在主要浏览器中正常工作,但IE抛出错误:Reactjs IE11 React.memo+;反应重复连接问题,reactjs,redux,react-redux,internet-explorer-11,babeljs,Reactjs,Redux,React Redux,Internet Explorer 11,Babeljs,我正在尝试使用React.memo来记忆redux连接的组件。 我的代码在主要浏览器中正常工作,但IE抛出错误: You must pass a component to the function returned by connect. Instead received {"$$typeof":60115,"compare":null} 组件代码: import React, { memo } from 'react'; import { connec
You must pass a component to the function returned by connect. Instead received {"$$typeof":60115,"compare":null}
组件代码:
import React, { memo } from 'react';
import { connect } from 'react-redux';
const MyComponent = ({ some, prop }) => (
<div>Some React</div>
);
const MyComponentMemoized = memo(MyComponent);
const mapStateToProps = state => ({
some: someSelector(state),
prop: propSelector(state),
});
const MyComponentMemoizedAndConnected = connect(mapStateToProps)(MyComponentMemoized);
export default MyComponentMemoizedAndConnected;
经过数小时的调试,我发现这个错误在我从我的网页
条目中删除'react-hot-loader/patch'
后消失了。我不知道为什么会发生这种情况,但希望它能节省一些人的时间如果有人遇到这个问题,请检查您使用备忘录和连接的顺序
例如,使用recompose
中的compose
:
compose(
反应,备忘录,
连接(MapStateTops),
)(MyComponent);
React.memo
应在连接之前使用connect
删除备忘录是否有效?我在搜索结果中发现,此错误可能是由3个原因造成的。组件之间的循环依赖关系,导出和导出默认值的错误使用,然后以错误的方式导入,错误地使用连接函数,传递错误的参数。您可以尝试检查它是否有助于解决问题。和@ducmai yep,它在没有备忘录的情况下工作;没有连接的记忆组件也可以用来发布这个问题的解决方案。我建议你试着在48小时后标记你自己对这个问题的答案。它可以在未来帮助其他社区成员解决类似的问题。谢谢你的理解。
"presets": [
[
"@babel/preset-env",
{
corejs: '3.6',
"targets": {
"chrome": "58",
"ie": "11"
},
useBuiltIns: 'usage',
},
],
"@babel/preset-react"
]