React.default.memo不是函数(React-Native)wrapWithConnect

时间:2019-04-11 04:12:10

标签: reactjs react-native redux react-redux redux-thunk

我得到这个错误

  

_react.default.memo不是函数

wrapWithConnect
这是一个react-native项目,在使用connect函数将调度程序连接到我的react组件之前,它运行良好:

打包版本:

    "react": "16.5.0",
    "react-redux": "^6.0.1",
    "redux": "^4.0.1",
    "redux-logger": "^3.0.6",
    "redux-thunk": "^2.3.0",

代码

const mapDispatchToProps = dispatch => {
 return { 
  sendEmail: (email, navigateMap) => dispatch(sendEmail, navigateMap))

export default connect(null, mapDispatchToProps)(Login)

7 个答案:

答案 0 :(得分:15)

我遇到了同样的问题,我更改了6.0.0的{​​{1}}版本,而不是使用更新的版本,此问题已解决。

请通过运行以下命令更改版本:

react-redux

我的项目版本大于16.5.0,但是我不确定这是否也有影响。

答案 1 :(得分:3)

这是expo的问题。尝试使用此命令清除expo缓存

expo r -c

答案 2 :(得分:2)

发生了完全相同的错误。意识到这不是由于语法错误,而是react-redux版本的兼容性。一旦我执行了纱线检查,它就会给我多条消息:“ react-redux#react@^16.8.4不满足找到的react@16.5.0匹配”。

Expo为react 16.5.0,而react-redux期望为react 16.8.4。 Moi回答说,安装react-redux 6.0.0对我有用。尝试更改任何其他程序包会导致出现更多错误

答案 3 :(得分:1)

尝试使用react 16.6.0而不是16.5.0

答案 4 :(得分:1)

结合为我解决的两个答案:

  1. 删除新的react-redux:yarn remove react-redux
  2. 安装旧版本的react-redux:yarn add react-redux@6.0.1
  3. 清除博览会缓存:expo r -c

这可以解决问题。

答案 5 :(得分:0)

尝试更新您的依赖项。

我遇到同样的问题,并且正在使用npm-check-updates

这是更新检查日志:

 expo               ^32.0.0  →  ^32.0.6
 react               16.5.0  →   16.8.6
 react-navigation    ^3.6.1  →   ^3.7.1
 babel-preset-expo   ^5.0.0  →   ^5.1.1

Run npm install to install new versions.

答案 6 :(得分:0)

如果您在尝试在Expo应用程序中实施现代React-Native时感到迷茫且无所适从,请不要担心我的朋友,您并不孤单。

我遇到了这个问题,发现:

  • expo 32.0不支持react 16.8

  • react-redux 7.1并按要求react 16.8

我能够使其与以下版本一起使用:

"expo": "^32.0.0",
"react": "16.5.0",
"react-redux": "^6.0.1",

您可以在package.json中替换它们,然后应该这样做:

> rm -rf node_modules
> [npm|yarn] install
> expo r -c 

为了从node_modules和Expo缓存中删除以前的版本。