react-native - 尝试使用 eval() 函数设置状态(React Native)
问题描述
我正在尝试将 for 循环中的多个状态设置为 false 或 true,具体取决于它们是否满足(if 语句)要求。for 循环将遍历一个字符串数组,每个字符串代表一个状态。但我似乎无法在 this.setState 函数中使用 eval ......
我曾尝试在线研究,但没有一个解决方案与我的问题或我要解决的问题相匹配。我什至尝试了 eval(this.state.anything) = false 但它仍然不起作用并显示左手分配无效错误。
let businessState = [
"this.state.groupName",
"this.state.groupOwnerName",
"this.state.groupDesc",
"this.props.profile._id",
"this.state.businessName",
"this.state.businessDesc",
"this.state.businessRegNo",
"this.state.businessType",
"this.state.businessEmail",
"this.state.businessTel",
"this.state.businessWeChat",
"this.state.businessRegPhotoUri",
"this.state.businessSignPhotoUri"
];
var temp = ""
for (i = 0; i < businessState.length; i++) {
if (eval(businessState[i]) == ""){
temp = businessState[i]+ "Error"
this.setState({
eval(temp): true
})
}
}
从上面的代码可以看出,我要评估状态,如果这个特定状态持有的值是一个空字符串“”,我想设置这个状态名称+“错误”(例如,如果this. state.email 是空字符串 "" 我想将 this.state.emailError 设置为 true。
解决方案
而不是this.setState({eval(temp): true})
尝试this.setState({[temp]: true})
。括号会将存储在 temp 中的字符串值作为 setState 中的变量名输出。
推荐阅读
- python - 如何将两个输入放入 tensorflow lambda 层
- asp.net-core-2.0 - 无法使用 iText 7 和 .net 解析来自 pdf 的希伯来语文本
- python-3.x - 日期时间 - 错误或功能?
- python - 我想创建目录并保存图像文件,但它的名称已经存在,它应该有数字表示
- java - 播放应用程序 | 如何将 FilePart 传递给其他请求
- django - this.$apollo 始终未定义
- visual-studio-2019 - Visual Studio 2019 IntelliTest 与 .NET Core、.NET Standard 的兼容性?
- python - 如果满足条件,如何交换 Nx2 numpy 数组的行的元素?
- javascript - const [a, b, c] = array 有什么区别?和 const {a, b, c} = 数组;
- security - Microsoft Identity Platform (/common/oauth2/v2.0/token) 上格式无效的 oAuth2.0 access_token