Javascript 在React类组件中抛出错误且值为true或false的复选框?
我有两个复选框,它们以前可以工作,但现在抛出了一个错误。这些复选框只返回表单中的true或false,并提交到Firestore后端。在做出其他改变之前,这些系统最近运行良好 所讨论的错误是 TypeError:无法在布尔值“false”上创建属性“cash” 只要单击复选框,就会触发此操作。我正在使用 changeStoreData()操作更新FireStore,此操作在我的整个应用程序中调用,以更新用户信息 这是我的状态设置Javascript 在React类组件中抛出错误且值为true或false的复选框?,javascript,reactjs,checkbox,boolean,state,Javascript,Reactjs,Checkbox,Boolean,State,我有两个复选框,它们以前可以工作,但现在抛出了一个错误。这些复选框只返回表单中的true或false,并提交到Firestore后端。在做出其他改变之前,这些系统最近运行良好 所讨论的错误是 TypeError:无法在布尔值“false”上创建属性“cash” 只要单击复选框,就会触发此操作。我正在使用 changeStoreData()操作更新FireStore,此操作在我的整个应用程序中调用,以更新用户信息 这是我的状态设置 constructor(props) { super(pr
constructor(props) {
super(props);
this.state = {
currency: "USD",
tax_rate: "8.00",
prices_include_tax: false,
payment_types: {
cash: false,
credit: false
}
};
}
这些是有问题的按钮
handleCash = () => {
this.setState(state => {
var newData = state.payment_types;
newData.cash = !state.payment_types.cash;
return {
payment_types: newData
};
});
};
handleCredit = () => {
this.setState(state => {
var newData = state.payment_types;
newData.credit = !state.payment_types.credit;
return {
payment_types: newData
};
});
};
这是调用changeStoreData()函数的onSubmit函数
最后,这里是actions文件中的changeStore函数本身
export function changeStoreData(data) {
let currentState = store.getState();
let id = currentState.currentStore.id;
console.log(data);
firestoreDb
.collection("users")
.doc(currentState.uid)
.collection("stores")
.doc(id)
.update(data)
.then(
store.dispatch({
type: UPDATE_STORE_DATA,
data: data
})
)
.catch(err => {
console.log(err);
});
}
给出的错误是
TypeError: Cannot create property 'cash' on boolean 'false'
这可能与您的问题无关,但此行
var newData=state.payment\u types
没有复制状态newData
只是指向状态的同一引用。付款类型。因此不需要它?在您的情况下,一个简单的浅拷贝将解决状态变异的问题const newDate={…state.payment_types}
这是有效的,但是您建议如何更改changeStoreData()调用以正确保存到firestore
TypeError: Cannot create property 'cash' on boolean 'false'