我用redux创建了状态,我不知道如何导入或useSelector我想要的状态

在这里,我使用useSelector 发送到登录文件中的状态
function Login(props) {
var classes = useStyles();
var dispatch = useDispatch();
const { username, password } = useSelector((state) => ({
...state.combineReducers,
...state.userReducer,
}));这是导航文件,在这里,我想要获取状态中的内容
function nav(props) {
const { username } = useSelector((state) => ({
...state.combineReducers,
...state.userReducer,
}));错误
Failed to compile.
./src/NAVBAR/nav.js
Line 27: React Hook "useSelector" is called in function "nav" which is neither a React function component or a custom React Hook function react-hooks/rules-of-hooks我试过很多方面,但都失败了。
发布于 2019-09-21 14:20:20
问题是nav是函数,而不是函数。
在您的例子中,您可能想要创建一个custom-hook
function useUsername() {
const { userName } = useSelector(state => ({
...state.combineReducers,
...state.userReducer
}));
return { userName };
}
function Login(props) {
const { userName } = useUsername();
return <>...</>;
}注意,如果您想使它成为一个函数组件,您需要返回一个ReactElement,并在React导入的作用域内。
import React from 'react';
// v Note that you must have an Upper-case for it to be a valid ReactElement
function Nav(props) {
const { username } = useSelector(state => ({
...state.combineReducers,
...state.userReducer
}));
// return ReactElement
return <>I'm some Element</>;
}
export default Nav;https://stackoverflow.com/questions/58041026
复制相似问题