reactjs - 更新 React Hook 中的 props 形式的外部函数
问题描述
**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;
解决方案
你可以使用 hook useState
withuseEffect
来监听 prop 更新:
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} />;
}
希望这可以帮助!
推荐阅读
- css - 使用 PrintJS 打印设置的宽度和高度
- python-3.x - TypeError:无法使用这些 str 类型的索引器 [stuff] 在 DatetimeIndex 上进行位置索引
- button - 如何使此脚本与按钮单击一起工作?(帖子内的脚本)
- android - 颤振构建应用程序捆绑“失败:构建失败并出现异常”
- android - 安装 facebook-connect 插件后 Ionic 构建失败
- java - split String 如果得到任何大写字母
- spring - Spring WebTestClient 无法解析参数化类型 List 的主体
> - django - /register 'CustomUser' 对象的 TypeError 不可下标
- java - 在 Java (android) 中访问键盘上的 MotionEvent
- javascript - 类型“EmployeeService[]”不可分配给类型“Employee[]”