reactjs 使用useState()更改多个字段

dxxyhpgq  于 2022-12-12  发布在  React
关注(0)|答案(1)|浏览(204)

我有这样的情况:一个表,其中存在字段“available”和“borrower”。用户一旦点击“borrow”按钮,状态就被更新,“borrowerId”被添加到其中,并且“available”从true切换到false。
我能做的就是用两个按钮更新状态,但是我找不到一种方法来更新useState中对象的多个字段。

const [state, setState] = useState(book);

const handleChange = (e: any) => {
    const name = e.target.name;
    
    const value = auth.decodedUser.userId;
    if (state) {
      setState({
        ...state,
        
        [name]: value,
      });
    }
  };


<Button
         name="borrowerId"
         type="submit"
         variant="outlined"
         color="inherit"
         onClick={handleChange}
         >
         borrow
 </Button>

我想做的事情是这样的:

const handleChange = (e: any) => {
        const userId = auth.decodedUser.userId;
        if (state) {
          setState({
            ...state,
            available: false,
            borrowerId: userId,
          });
        }
      };

但我试过了,没有成功。有线索吗?

8aqjt8rx

8aqjt8rx1#

您可以执行类似以下示例的操作
我用一些虚拟值替换了bookauth.decodedUser.userId
通过呈现{JSON.stringify(value)}显示当前状态挂接
按按钮查看handleChange()所做的更改
第一个

相关问题