【问题标题】:Update props in react Hook form external function更新 React Hook 中的 props 形式的外部函数
【发布时间】:2020-03-30 12:24:48
【问题描述】:
   **reactClass.js**

   <hookFunction tableData={[]} />

如何从下面的钩子函数中从其外部函数更新 tableData。 我希望更新会发生 onChange 效果。

**hookFunction.js**

import React from 'react';

function TableR({ data }) {
   return (
    <input
      value={filterValue || ''}
      onChange={(e) => {
        // update props `tableData`
      }}
    />
  );
}

function App({tableData}) {
  return (

     return <Table  data={tableData} />;

  );
}

export default App;

【问题讨论】:

    标签: reactjs react-hooks react-props


    【解决方案1】:

    您可以使用钩子useStateuseEffect 来监听道具更新:

    
    function TableR({ data, setTableData }) {
       return (
        <input
          value={filterValue || ''}
          onChange={(e) => {
            setTableData(e.target.value);
          }}
        />
      );
    }
    
    function App({tableData}) {
      const [data, setTableData] = useState(tableData);
    
      useEffect(() => {
        // this will update the state if tableData coming as props changes
        setTableData(tableData);
      }, [tableData]);
    
      return <Table  data={data} setTableData={setTableData} />;
    }
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢@Rafael,问题是我正在使用调节器函数TableR,因此无法根据钩子规则访问useEffect or useState
    • 您可以在常规函数或箭头函数中使用钩子。
    • 我刚刚将我的函数 TableR 移动到钩子函数 App() 中,因此能够相应地进行我的更新。我不知道这是否是最佳做法
    • 谢谢你会去看看。
    猜你喜欢
    • 2019-08-05
    • 2019-07-27
    • 2020-09-28
    • 2023-01-30
    • 2020-09-11
    • 2017-07-12
    • 2020-11-07
    • 2020-04-11
    • 1970-01-01
    相关资源
    最近更新 更多