簡體   English   中英

在const中分配值

[英]Assigning value in a const

如何在我的常量中分配一個值?

在表單中,我檢查了一些輸入,當該值為true時,我需要更改此值以與客戶端的web服務通信,如果為false,我也需要更改該值,但是我不能通過以下方式簡單地執行此操作用新值聲明const。

我試圖直接在const中更改值,但是它不起作用

在CodeSandbox中遵循我的代碼: https ://codesandbox.io/s/n08n2m7mpj


import 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”。

如果必須更改其值,則可以使用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";
//...

常量是塊作用域的,非常類似於使用let語句定義的變量。 常量的值不能通過重新分配而更改,也不能重新聲明

因此,const的要點是,一旦聲明它,就不能更改它。 如果需要將值分配和重新分配給變量的能力。 使用letvar會更好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM