我想在单击按钮时将状态设置为“ true”或“ false”,并在与redux的react native中使用AsyncStorage进行保存。 我做对了吗?请帮我修复它。
import { AsyncStorage } from "react-native";
import {
START_TOOLTIP_BUDGET,
STOP_TOOLTIP_BUDGET
} from "../actions/ActionTypes";
const INIT_STATE = true;
export default (state = INIT_STATE, action) => {
switch (action.type) {
case START_TOOLTIP_BUDGET:
AsyncStorage.setItem("INIT_STATE", JSON.stringify(true));
return INIT_STATE;
case STOP_TOOLTIP_BUDGET:
AsyncStorage.setItem("INIT_STATE", JSON.stringify(false));
return INIT_STATE;
default:
return state;
}
};
答案 0 :(得分:1)
是的,您可以正确地进行操作,但是如果您返回INIT_STATE true或false,则可以获取当前类的当前数据。否则,您每次都返回true。
export default (state = INIT_STATE, action) => {
switch (action.type) {
case START_TOOLTIP_BUDGET:
AsyncStorage.setItem("INIT_STATE", JSON.stringify(true));
return true;
case STOP_TOOLTIP_BUDGET:
AsyncStorage.setItem("INIT_STATE", JSON.stringify(false));
return false;
default:
return state;
}
};
然后从类中单击按钮。而且您还可以获得AsyncStorage项目;
AsyncStorage.getItem("INIT_STATE")
.then(req => JSON.parse(req))
.then(data => {
if (data !== null) {
console.log(data); // true or false
}
}).done();