“event”已弃用 - 使用什么来代替 React 更改处理程序

tpr*_*nda 6 onchange event-handling reactjs material-ui

我目前正在使用 Material UI 构建一个 React 应用程序。我正在尝试构建一个带有下拉菜单的 Select 组件,当我编写 handleChange 函数时,我收到一条警告,提示我的函数参数event已被弃用。

我以前在编辑具有依赖于事件变量的函数的其他应用程序时见过这种情况。在网上查看时,我看到了使用.bind.addEventListener替代的建议,但我不完全理解它们是如何工作的。它似乎也使代码变得更加丑陋......

我想我只是在寻找一些关于如何在 MUI Select 组件的情况下实现这些替代方案的建议。这就是我想写的:

const handleChange= (event: any) => {
  setState(event.target.value);
};
Run Code Online (Sandbox Code Playgroud)

这样我就可以轻松地在渲染函数中使用它:

   <Select
      native
      value={binary}             \\ (state variable)
      onChange={handleChange}    \\ (nice and simple function ref)
      inputProps={{
        name: 'binary',
        id: 'binary-select',
      }}
   >
Run Code Online (Sandbox Code Playgroud)

如果event已弃用,我将来使用它是否会面临失去功能的风险?如果我应该使用我在网上看到的这些替代解决方案,在这种情况下我将如何应用它们?

谢谢!

tpr*_*nda 7

我猜 VSCode 将我的事件参数误认为是 GLOBAL 事件处理程序,该处理程序已被弃用。正如其他人的评论所指出的,使用事件作为参数是完全可以的!

'问题解决了。