![](/img/trans.png)
[英]On React, how can I call a function on component mount on a functional/stateless component?
[英]How can I call a function inside of stateless functional component in reactjs
這是我的問題,我想從 MyTable.js 調用函數刷新到 MyPage.js
MyTable.js
const MyTable = (props) => {
//Some state
const refresh = () => {//Do Refresh}
return(<Table/>);
}
export default MyTable;
我的頁面.js
const MyPage = (props) => {
//Some state
const handleRefresh = () => {
//How to call refresh of MyTable here?
}
return(
<Button onClick={handleRefresh} >Refresh</Button>
<MyTable />
)
}
//我想要一個類似這樣的解決方案,但我不知道如何實現
const MyPage = (props) => {
//Some state
const [myTable] = MyTable.useMyTable();
const handleRefresh = () => {
myTable.refresh();
}
return(
<Button onClick={handleRefresh} >Refresh</Button>
<MyTable table={myTable} />
)
}
有一種方法可以做到,但不強烈推薦。
你可以像下面這樣
MyTable.js
const MyTable = (props) => {
props.refresh(() => {
// DO Refresh
});
return(<Table/>);
}
export default MyTable;
我的頁面.js
const MyPage = (props) => {
//Some state
let refreshFunc = () => {};
const handleRefresh = () => {
//How to call refresh of MyTable here?
refreshFunc();
}
return(
<Button onClick={handleRefresh} >Refresh</Button>
<MyTable refresh={r => { refreshFunc = r; }} />
)
}
嘗試打補丁如下:
const MyPage = (props) => {
//Some state
const [refresh, setRefresh] = useState(0);
const handleRefresh = () => {
setRefresh(x => x + 1);
}
return(
<Button onClick={handleRefresh} >Refresh</Button>
<MyTable dummy={refresh} />
)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.