【问题标题】:How use on change event in reactjs (hooks)如何在 reactjs 中使用更改事件(钩子)
【发布时间】:2020-06-08 21:27:44
【问题描述】:

我需要通过 onchange 单击选项卡组件来更改 activeTab。 我想我需要使用反应钩子。但我仍然无法理解它是如何工作的。 此代码抛出错误

'handleChange 未定义'

function TobaccoLine({ match, location  }) {
   const activeTab = useSelector(state => location.state ? location.state.activeTab : 0);

   handleChange = (event, value) => {
      this.setState({ activeTab: value });
   }

    return (
         <div className="userProfile-wrapper">
                     <Tabs
                        value={activeTab}
                        onChange={handleChange}
                        variant="scrollable"
                        scrollButtons="off"
                        indicatorColor="primary"
                     >
...

你能帮忙吗,因为我已经卡住了? React JS v16+

【问题讨论】:

    标签: javascript reactjs react-hooks onchange setstate


    【解决方案1】:

    这不是类组件。您使用的方式是公共类方法。由于您在函数式组件中使用它,它只是一个函数,但尚未声明该函数。所以,你只需要定义它:

    const handleChange = (event, value) => {
      this.setState({ activeTab: value }); // Next problem: See below.
    }
    

    之前,您得到的 handleChangeundefined 因为您使用时没有 var,letconst 声明。

    下一个问题:您在不适用的功能组件内使用this.setState。你需要使用useState钩子:

    const [activeTab, setActiveTab] = useState('') // empty initial state, change it
    // To set state:
    setActiveTab('your value')
    // To get state:
    console.log(activeTab)
    

    如果您不了解 hooks,那么您可以了解更多关于它的信息here

    【讨论】:

    • 问题二是:this.setState 不是函数或类似的东西。他们将需要学习 useState 钩子才能使其正常工作
    猜你喜欢
    • 2020-04-03
    • 2020-08-04
    • 2021-11-27
    • 2020-09-10
    • 2020-04-07
    • 1970-01-01
    • 2021-09-11
    • 2022-06-22
    • 2020-08-04
    相关资源
    最近更新 更多