当用户关闭另一个组件时,我们正在尝试滚动到特定组件。
我们的示例与下面的示例非常类似,取自https://reactjs.org/docs/refs-and-the-dom.html#exposing-dom-refs-to-parent-components
function CustomComponents(props) {
const items = [1,2,3,4].map((x, i) => return (
<div ref={props.inputRef} key={i}>
x + hello
</div>
)
return (
<div>
{ items }
</div>
);
}
function Parent(props) {
return (
<div>
<CustomComponents inputRef={props.inputRef} />
</div>
);
}
class Grandparent extends React.Component {
render() {
return (
<Parent
inputRef={el => this.inputElement = el}
/>
);
}
}
我们正在提供一大堆卡片,希望能够通过拨打this.refs[elem].scrollIntoView()
但我们的问题是调用this.refs
会在所有级别返回一个空对象,因此我们无法附加到特定元素,然后在用户返回查看此组件时触发它。
想要一些人如何解决这个问题。
答案 0 :(得分:1)
你想在哪里打电话this.refs[elem].scrollIntoView()
?您应该使用ref
或componentDidMount
内的componentDidUpdate
,而不是render
方法。
答案 1 :(得分:0)
我通过在祖父母组件中提供下面写的if语句来解决我的具体问题。
{{1}}