为什么React重新渲染过程不会改变checkbox的值?

问题描述 投票:0回答:1

我刚刚用 onChange 事件处理程序创建了一个输入框,并且有一个复选框。我将复选框单击为 true,然后在输入框中键入,该输入框将重新渲染组件,因为它具有 useState 挂钩...但是当重新渲染发生时,为什么不做出反应,只显示具有 false 值的复选框,而是显示以前的状态(这是真的)???

import React, { useState } from "react";

function App() {
  const [name, setName] = useState("");

  function handleChange(event) {
    setName(event.target.value);
  }

  return (
    <div>
      <input
        type="text"
        onChange={handleChange}
        placeholder="Enter a value"
        value={name}
      />
      <label>RADIO2</label>
      <input type="checkbox" />
      {console.log(name)}
    </div>
  );
}

export default App;

我只是想了解这种重新渲染的反应行为。

javascript reactjs dom
1个回答
0
投票

您需要管理复选框的状态:

import React, { useState } from "react";

function App() {
  const [name, setName] = useState("");
  const [isChecked, setIsChecked] = useState(false);

  function handleChange(event) {
    setName(event.target.value);
  }

  function handleCheckboxChange(event) {
    setIsChecked(event.target.checked);
  }

  return (
    <div>
      <input
        type="text"
        onChange={handleChange}
        placeholder="Enter a value"
        value={name}
      />
      <label>RADIO2</label>
      <input
        type="checkbox"
        checked={isChecked}
        onChange={handleCheckboxChange}
      />
      {console.log(name)}
    </div>
  );
}

export default App;

© www.soinside.com 2019 - 2024. All rights reserved.