React Native asyncstorage以保存按钮的样式

时间:2018-05-09 20:59:52

标签: react-native react-native-android

我有两个按钮,我想在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
}

请帮忙!

1 个答案:

答案 0 :(得分:3)

您可以使用JSON序列化/反序列化保存对象。你是如何在AsyncStorage上存储样式对象的?你能添加你的AsyncStorage代码吗?如果你得到并设置这样。它将被修复

await AsyncStorage.setItem("myStyle", JSON.stringify(style)); //for set

var style = JSON.parse(await AsyncStorage.getItem("myStyle"));