ass*_*ler 4 react-redux react-hooks
我很新的阵营挂钩,我想更换connect,mapStateToProps等等带useSelector,useDispatch。这就是我所拥有的:
import React from 'react';
import { useSelector } from 'react-redux';
function MyComponent(props) {
const data = useSelector(state => state.app.loadingData);
return (
<div>
{data}
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
其中,根据https://react-redux.js.org/api/hooks写得很好。这是我的 Redux DevTools 控制台:
因此,app存在于 redux 状态树中并且也loadingData存在。无论如何,我的浏览器控制台指向const data = useSelector(state => state.app.loadingData);大喊我有这个错误:
未捕获的类型错误:Object(...) 不是函数
那么,我做错了什么或者我在这里错过了什么?
小智 23
我有同样的错误,我发现我错过了导入的“useSelector”。我是从 react 而不是 redux 导入的。:)
错误 :
import React, { useState, useEffect, useSelector } from "react";
Run Code Online (Sandbox Code Playgroud)
好办法:
import { useDispatch, useSelector } from "react-redux";
Run Code Online (Sandbox Code Playgroud)
小智 7
检查您的 react-redux 版本,userSelector 函数可从 7.1.0 版本中获得,以更新到最后运行的版本:
yarn add react-redux
Run Code Online (Sandbox Code Playgroud)
解决方案:
也许不是最好的方法,也不是最漂亮的方法,但对我来说可行的解决方案:
const data = useSelector(state => state.getIn(['app', 'loadingData']);
Run Code Online (Sandbox Code Playgroud)
希望这会有所帮助。如果这个解决方案可以得到改进,redux 团队可能会在这里提供帮助。
| 归档时间: |
|
| 查看次数: |
5480 次 |
| 最近记录: |