react-native - 反应原生状态
问题描述
我是react的初学者,但我已经在几个地方搜索过,我无法解决。我的问题是在 react native 中更改变量的值,基本上我需要创建一个函数来设置变量的真假,但是当我尝试使用该变量时,它总是为假。
在构造函数中:
this.state = {
uid: "",
name: "",
email: "",
pass: "",
loading: false
};
函数调用按钮:
setLoader = () => {
console.log(this.state.loading);
this.setState({ loading: !this.state.loading });
console.log(this.state.loading);
};
控制台的出口是:
[19:52:10] false
[19:52:10] false
解决方案
那是因为设置状态是一个异步任务。它需要时间来设置。如果您尝试像您所做的那样调用该值,您会发现它没有更新,这是预期的行为。
如果您想在设置后找出 state 中的值,您应该执行以下操作
this.setState(previousState => {
return { loading: !previousState.loading }
}, () => console.log(this.state.loading));
setState 接受一个回调,一旦设置了状态就会调用它
查看这三篇描述状态的精彩文章
https://medium.learnreact.com/setstate-is-asynchronous-52ead919a3f0
https://medium.learnreact.com/setstate-takes-a-callback-1f71ad5d2296
https://medium.learnreact.com/setstate-takes-a-function-56eb940f84b6
推荐阅读
- microsoft-graph-api - Microsoft Graph API 消息编辑和移动请求返回特定租户的 BrokenPipeError
- windows - 当计数大于 > 时删除文本文件中的行的批处理文件脚本
- javascript - 如何正确设置 React-Bootstrap 中的行?
- android - 方法 DocumentsContract.deleteDocument 不删除从 Intent.ACTION_CREATE_DOCUMENT 创建的文件
- python - 爬虫爬虫的图片文件名递增问题
- python - 从另一个 python 文件运行 python pytest 文件
- python - 使用循环根据特定列值识别数据框中的所有实例
- unique-ptr - 为什么我收到一个错误,即“virtual Derived::~Derived()”在此上下文中受到保护?
- react-native - 在 React Native 中从精灵表渲染像素化精灵
- bash - 每次我推入远程存储库时,创建一个 Git Hook 以在另一个文件夹中提取数据