React-Redux useSelector()未返回整个字符串

hi3rlvi2  于 2022-11-12  发布在  React
关注(0)|答案(1)|浏览(116)

我在Redux全局存储中存储了一些值。但是,当我试图检索它的值时,我只得到了第一个字符。我需要Redux存储中的整个字符串。
我的redux存储:

path(pin):"https://dog.ceo/api/breed/collie/border/images"
breed(pin):"collie"
subBreed(pin):"border"

我的代码:

const [breed, setBreed] = useSelector((state) => state.breed);
  const [subBreed, setsubBreed] = useSelector((state) => state.subBreed);

  React.useEffect(() => {
    console.log("Breed in useEffect: ", breed);
    console.log("subBreed in useEffect: ", subBreed);
  }, [breed, subBreed]);

控制台输出:

Breed in useEffect:  c
subBreed in useEffect:  b
dsekswqp

dsekswqp1#

问题

您使用反结构化赋值从字符串中抓取单个字符。

const [breed, setBreed] = useSelector((state) => state.breed);
const [subBreed, setsubBreed] = useSelector((state) => state.subBreed);

这里的breedsubBreed是每个字符数组或字符串的 * 第一个 * 字符。

const [breed, setBreed] = "collie";

console.log({ breed }); // "c" from "collie"

溶液

useSelector钩子只返回你选择的状态,而不是state和setter的数组。只需将选择的值赋给breedsubBreed

const breed = useSelector((state) => state.breed);
const subBreed = useSelector((state) => state.subBreed);

const { breed, subBreed } = useSelector((state) => state);

相关问题