为了账号安全,请及时绑定邮箱和手机立即绑定

react hook useState 无法存储 json 或 string

react hook useState 无法存储 json 或 string

ABOUTYOU 2021-11-25 19:44:10
正如标题所说,react hook useState 似乎无法存储我的字符串这是我的代码const [data, setData] = useState(null);useEffect(() => {        fetch("http://api.localhost/user/shoppingcart", {            headers: {                Authorization: cookies.Authorization            }        })            .then(res => res.json())            .then(                result => {                    console.log(result);                    setData(result);                    console.log(data);                });    }, []);第一个“console.log”,我可以得到正确的字符串。[{"shoes":1}, {"shirt":2}]但是第二个“console.log”,我得到一个空字符串。null或者也许是我的错误?
查看完整描述

2 回答

?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

setState是async。所以你不能在设置状态后立即获取数据。


如果您尝试console.log在设置状态后进行状态,您将始终获得先前的状态。


如果你想获得新数据,那么你应该有useEffect依赖数组的专用钩子,


useEffect( () => {

   console.log(data)

},

[data] //This is dependency and it will run only when data is changed


查看完整回答
反对 回复 2021-11-25
?
开满天机

TA贡献1786条经验 获得超13个赞

问题的标题具有误导性。我的意思是,它是否是 json 字符串并不重要。解决方案很简单, console.log(data);只需将 useEffect 块移出并立即移出return(如果之前return将无法响应)。这可能就是原始海报想要的。


查看完整回答
反对 回复 2021-11-25
  • 2 回答
  • 0 关注
  • 306 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信