如何在我的常量中分配一个值?在表单中,我检查了一些输入,当该值为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";
//...

米脂
TA贡献1836条经验 获得超3个赞
常量是块作用域的,非常类似于使用let语句定义的变量。常量的值不能通过重新分配而更改,也不能重新声明
因此,const的要点是,一旦声明它,就不能更改它。如果需要将值分配和重新分配给变量的能力。使用let或var会更好。
添加回答
举报
0/150
提交
取消