React-Redux useSelector()仅返回字符串首字符,需获取完整字符串
解决Redux获取字符串仅返回第一个字符的问题
你遇到的问题根源在于错误使用了useSelector的返回值——你把它当成useState的状态数组来解构了。useSelector直接返回Redux存储中对应的状态值,不需要用数组解构(那是useState专属的用法)。当你写const [breed, setBreed] = useSelector(...)时,相当于把返回的完整字符串(比如"collie")当作数组来处理,取第一个元素也就是第一个字符'c',这才导致控制台只输出单个字符。
修正后的代码如下:
// 直接接收useSelector返回的完整状态值,不用数组解构 const breed = useSelector((state) => state.breed); const subBreed = useSelector((state) => state.subBreed); React.useEffect(() => { console.log("Breed in useEffect: ", breed); console.log("subBreed in useEffect: ", subBreed); }, [breed, subBreed]);
useSelector的作用是从Redux存储中提取你需要的状态片段,它的返回值就是目标状态本身(这里就是完整的字符串),不需要额外的解构操作。修正后就能正常获取到存储里的完整字符串了。
内容的提问来源于stack exchange,提问作者user9890324
相关产品推荐
相关产品推荐

