使用 ref 查找嵌套元素
Using ref to find a nested element
我正在使用 gridjs-react
库创建一个 table,如下所示:
<Grid
columns={['Name', 'Email']}
data={[
['John', 'john@example.com'],
['Mike', 'mike@gmail.com']
]}
ref={tableRef}
search={true}
pagination={{
enabled: true,
limit: 1,
}}
/>
但是,我最终想在 dom 中添加一个项目来得到这个:
我考虑过使用 ref
但我无法访问以下 div 因为它仅在组件 Grid 安装后呈现:(据我所知)
您可以在呈现所有内容后访问 useEffect
块中的网格引用:
useEffect(()=> {
const grid = ref.current.wrapper.current; //--> grid reference
const header = grid.querySelector(".gridjs-head"); //--> grid header
const itemContainer = document.createElement("div"); //--> new item container
header.appendChild(itemContainer);
ReactDOM.render(<Input />, itemContainer); //--> render new item inside header
}, []);
您将需要使用 css
来获得元素内的所需位置。
或者只对您想要的组件使用 CSS 解决方案。
例如
<div style={{ position: 'relative'}}>
<Grid
....
/>
<MySearchComponent style={{ position: 'absolute', top: 0, right: 0 }} />
</div>
我正在使用 gridjs-react
库创建一个 table,如下所示:
<Grid
columns={['Name', 'Email']}
data={[
['John', 'john@example.com'],
['Mike', 'mike@gmail.com']
]}
ref={tableRef}
search={true}
pagination={{
enabled: true,
limit: 1,
}}
/>
但是,我最终想在 dom 中添加一个项目来得到这个:
我考虑过使用 ref
但我无法访问以下 div 因为它仅在组件 Grid 安装后呈现:(据我所知)
您可以在呈现所有内容后访问 useEffect
块中的网格引用:
useEffect(()=> {
const grid = ref.current.wrapper.current; //--> grid reference
const header = grid.querySelector(".gridjs-head"); //--> grid header
const itemContainer = document.createElement("div"); //--> new item container
header.appendChild(itemContainer);
ReactDOM.render(<Input />, itemContainer); //--> render new item inside header
}, []);
您将需要使用 css
来获得元素内的所需位置。
或者只对您想要的组件使用 CSS 解决方案。
例如
<div style={{ position: 'relative'}}>
<Grid
....
/>
<MySearchComponent style={{ position: 'absolute', top: 0, right: 0 }} />
</div>