【问题标题】:i have problem with converting function in class component to functional我在将类组件中的函数转换为函数时遇到问题
【发布时间】:2020-05-03 23:36:17
【问题描述】:

从这个函数中,如何将“this.state”转换为函数式使用。

  const handleDayClick = (day) => {
        const range = DateUtils.addDayToRange(day, this.state);
        setRange(range)
    }

【问题讨论】:

  • 你必须要么使用钩子 (useState) 要么将你的状态转换成道具。
  • 我们不能在功能组件中使用这个指针,所以你必须使用钩子(useState)

标签: javascript reactjs ecmascript-6 react-functional-component


【解决方案1】:

this指针在函数式组件中不起作用,你必须使用钩子,所以添加这一行

const [range, setRange] = React.useState({});

然后将 this.state 改为 range

【讨论】:

    【解决方案2】:

    如果你像这样使用useState

    const [range, setRange] = useState({});
    

    那么你需要在句柄函数中使用另一个变量名。

    const handleDayClick = (day) => {
        const newRange = DateUtils.addDayToRange(day, range);
        setRange(newRange);
    }
    

    【讨论】:

      猜你喜欢
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 2017-09-27
      • 2018-02-17
      • 2020-03-09
      • 2019-08-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多