【问题标题】:My react state is not changing on select change [duplicate]我的反应状态在选择更改时没有改变[重复]
【发布时间】:2021-08-19 05:26:22
【问题描述】:

我正在尝试根据从我的选择元素中选择的项目来更改我的反应状态, 这是我的反应状态:

const [selectedItem, setSelectedItem] = React.useState('');

这是我的 OnChange 函数:

const handleSelectChange = (event) => {
      console.log('this is the target value',event.target.value);
      setSelectedItem('hello');
      console.log(selectedItem);
    };

这是我的选择元素(我正在使用 MaterialUI 选择组件):

<Select autoFous
        onChange={handleSelectChange}
        >
            <MenuItem value='simpleClick'>             
            Simple Click
            </MenuItem>
            <MenuItem value='seleniumClick'>             
            selenium click
            </MenuItem>
        </Select>

我做错了什么,所以我的状态没有改变?

【问题讨论】:

  • 任何给定渲染中的状态值都不会改变。 setState 是异步的,更新的值要到下一个渲染周期才可用。这回答了你的问题了吗? React setState not updating state
  • 尝试 onClick 而不是 onChange。我应该工作

标签: javascript reactjs state react-state


【解决方案1】:

当您使用setSelectedItem 时,它不会立即改变值 在setSelectedItem触发重新渲染后,您可以查看更改的值。

所以在您执行setSelectedItem('Hello') 之后,它将触发重新渲染,并且selectedItem 将在下一个渲染周期中更改为'Hello'

【讨论】:

    猜你喜欢
    • 2020-06-23
    • 2016-03-08
    • 2020-04-22
    • 2021-06-18
    • 2019-01-19
    • 2015-11-20
    • 2020-09-30
    • 1970-01-01
    • 2023-01-25
    相关资源
    最近更新 更多