TypeError:对象不可迭代-在Redux中使用useSelector时

gk7wooem  于 2022-11-12  发布在  其他
关注(0)|答案(1)|浏览(140)

我尝试在组件中使用isFetchingerror。但是,当我尝试使用useSelector从状态中选择用户时,在标题中出现错误。以下是我的代码:

const [username, setUsername] = useState("");
  const [password, setPassword] = useState("");
  const dispatch = useDispatch();
  const [isFetching, error] = useSelector((state)=>state.user)

  const handleClick = (e) => {
    e.preventDefault();
    login(dispatch, { username, password });
  };

和错误消息:

TypeError: Object is not iterable (cannot read property Symbol(Symbol.iterator))
Login
C:/Users/xxx/Shop/E-commerce/src/pages/Login.jsx:74
  71 |  const [username, setUsername] = useState("");
  72 |  const [password, setPassword] = useState("");
  73 |  const dispatch = useDispatch();
> 74 |  const [isFetching, error] = useSelector((state)=>state.user)
     | ^  75 |  
  76 | 
  77 |  const handleClick = (e) => {
vd8tlhqk

vd8tlhqk1#

嘿,我看了你的问题,你只需要在你的代码中做一个简单的改变,就像错误说的对象是不可迭代的,我们必须在下面的这一行中使用'{}'!
在代码中更改以下内容:

From :
  const [isFetching, error] = useSelector((state)=>state.user)

To :

  const {isFetching, error} = useSelector((state)=>state.user)

您需要使用数组的对象。

相关问题