为了账号安全,请及时绑定邮箱和手机立即绑定

在const中分配值

在const中分配值

慕娘9325324 2021-04-28 14:09:38
如何在我的常量中分配一个值?在表单中,我检查了一些输入,当该值为true时,我需要更改此值以与客户端的Web服务通信,如果为false,我也需要更改该值,但是我不能简单地通过用新值声明const。我试图直接在const中更改值,但是它不起作用在CodeSandbox中遵循我的代码:https ://codesandbox.io/s/n08n2m7mpjimport React, { useState } from "react";import ReactDOM from "react-dom";import Switch from "@material-ui/core/Switch";import "./styles.css";function App(props) {  const initialFormState = {    datRev: "01/05/2019",    empRev: "1",    numCad: "5",    numEmp: "1",    obsRev: "ReactJS done!",    sitRev: "1",    tipCol: "1",    tipEqp: "10",    tipSvc: "100",    cheklist: {      "": "",      "": "",      "": "",      "": ""    },    codCkl: "4",    sitCkl: "N",    selPro: "S",    obsCkl: "obs insomina"  };  const [equipRev, setEquipRevisao] = useState(initialFormState);  const [checkedA, setCheckedA] = useState(false);  const handleChange = nameChecked => event => {    const { name, value } = event.target;    setCheckedA({ [nameChecked]: event.target.checked });    if (event.target.checked === true) {      console.log("True: " + event.target.checked);      const value = "S";    } else {      console.log("False: " + event.target.checked);      const value = "N";    }    console.log("Value: " + value);    setEquipRevisao({ ...equipRev, [name]: value });    console.log("sitCkl: " + equipRev.sitCkl);  };  return (    <div className="App">      <h1>Hello CodeSandbox</h1>      <h2>Start editing to see some magic happen!</h2>      <Switch        name="sitCkl"        checked={props.checkedA}        onChange={handleChange("checkedA")}        value={equipRev.sitCkl}      />    </div>  );}const rootElement = document.getElementById("root");ReactDOM.render(<App />, rootElement);我希望“ event.target.checked”为true,它将sitCkl的值从equipRev更改为“ S”,如果为false,则将sitCkl的值从equipRev更改为“ N”。
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

如果必须更改其值,则可以使用let代替声明它const。(重点const不是重新分配值)。


  const handleChange = nameChecked => event => {

    let { name, value } = event.target;


    setCheckedA({ [nameChecked]: event.target.checked });


    if (event.target.checked === true) {

      console.log("True: " + event.target.checked);

      value = "S";

//...


查看完整回答
反对 回复 2021-05-06
?
米脂

TA贡献1836条经验 获得超3个赞

常量是块作用域的,非常类似于使用let语句定义的变量。常量的值不能通过重新分配而更改,也不能重新声明

因此,const的要点是,一旦声明它,就不能更改它。如果需要将值分配和重新分配给变量的能力。使用letvar会更好。


查看完整回答
反对 回复 2021-05-06
  • 2 回答
  • 0 关注
  • 183 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信