在上下文中设置对象状态

问题描述

我是React和React Native的新手,正在尝试了解一些东西。我希望有人可以向我解释我在这里做错了什么。我有一个对象,我正在尝试使用onChangeText设置自变量的值。该对象通过以下方式处理数据

const { data,updateUserDetails} = useContext(MembershipContext);

在表单字段

<TextInput
    style={styles.inputStyle}
    placeholder="First Name"
    value={data.userDetails.fname}
    onChangeText={(val) => updateUserDetails('fname',val)}
/>

并在上下文文件

const updateUserDetails = (field,val) => {
    setUserDetails([
        ...userDetails.field,val
    ]);
};

我正在尝试更新此状态

const [userDetails,setUserDetails] = useState({
    fname: '',lname: '',address: '',city: '',state: '',zip: '',email: '',phone: '',password: '',});

我希望这足以分析。任何帮助将不胜感激

解决方法

Ciao,我认为您的问题在于您如何呼叫setUserDetails。尝试将其替换为:

const updateUserDetails = (field,val) => {
    setUserDetails({
        ...userDetails,[field]: val
    });
};

应该解决问题。