我有两个按钮,我想在asyncstorage中保存样式。 目前他们被保存在这样的状态:
state = {
itemOne:styles.button,
itemTwo:styles.button,
}
根据样式的变化值
if (value) {
switch (value) {
case "Low":
this.setState({itemOne: styles.styleOne});
break;
case "Moderate":
this.setState({itemOne: styles.styleTwo});
break;
}
}
视图中的按钮看起来像这样
<Button
style={this.state.itemOne}
onPress={() => {
this.popupDialog.show();
}}
>
我使用AsyncStorage来保存状态,但是它出现了这个错误
Warning: Failed prop type: Invalid props.style key `0` supplied to `View`.
Bad object: {
"0": "6",
"1": "9",
"opacity": 1
}
请帮忙!
答案 0 :(得分:3)
您可以使用JSON序列化/反序列化保存对象。你是如何在AsyncStorage上存储样式对象的?你能添加你的AsyncStorage代码吗?如果你得到并设置这样。它将被修复
await AsyncStorage.setItem("myStyle", JSON.stringify(style)); //for set
和
var style = JSON.parse(await AsyncStorage.getItem("myStyle"));