reactjs - 从父组件中找出子组件挂载在react中
问题描述
我有一个反应组件,它有一个子组件。我必须在父组件中知道子组件已安装。怎么做?
解决方案
这取决于您使用的 React 版本。
如果您使用的是 React 16.8 或更高版本,您可以在子组件中使用 useEffect 挂钩,该挂钩可以触发父组件中的功能。
const Parent = props => {
const OnChildMount = () => {
console.log('Child Mounted);
}
return (
<Child onMount={OnChildMount}/>
)
}
const Child = props => {
useEffect(() => {
props.onMount();
}, []);
return (
//The child JSX
);
}
useEffect 挂钩中的空括号 [] 确保它仅在安装子组件时运行。
如果您使用的是旧版本的 React,您可以使用子组件中的 ComponentDidMount 生命周期钩子来触发父组件中的相同功能。
话虽这么说,最终的解决方案实际上取决于您的确切要求。
推荐阅读
- javascript - 为什么从浏览器 url 重新加载 Kendo UI GRID 页面时,所有数据都不显示,而只显示没有数据的网格?
- google-maps - 用户通过输入邮政编码进行搜索时如何更改默认的谷歌地图缩放级别?
- r - 使用get_decennial()获取2010年块组数据时出错,但可以获取块数据
- c# - 已经有一个打开的 DataReader 与此命令关联,必须先关闭
- c# - 如何从 Process.Start() 触发事件循环中的泵
- reactjs - MapMarker 不会立即更新描述 onPress
- eclipse - Servlet 初始化参数始终显示为空
- mysql - 如何匹配 2 个不同表上的日期并加入 ID 表?
- java - 为什么 Camunda 不在用户任务开始时显示消息事件订阅,而是在结束时显示?
- python - 从文件名/字符串中删除非数字