作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试解决一个简单的问题:加载组件时,我需要将其滚动到底部。但我浪费了很多时间试图解决它。我尝试了很多不同的方法(scrollIntoView、scrollTop、scrollBy 等),但没有一个做不到。下面的网址是 fiddle 的链接,其中我有一个简单的组件,我需要显示消息。问题是我必须自己滚动大约 10 个像素。如果您能帮助我解决这个问题,我将非常感激。
class Hello extends React.Component {
componentDidMount() {
const elem = ReactDOM.findDOMNode(this.refs.test);
if (elem) {
elem.scrollIntoView(false);
}
}
render() {
return (
<div>
<div className="test"
ref="test">
Hello {this.props.name}
</div>
<div>Message</div>
</div>
)
}
}
ReactDOM.render(
<Hello name="World" />,
document.getElementById('container')
);
最佳答案
您将 ref
属性放置在错误的位置。
将其向上移动一级以捕获整个组件,包括“消息”文本。
所以,基本上:
class Hello extends React.Component {
// ...
render() {
return (
<div ref="test">
<div className="test">
Hello {this.props.name}
</div>
<div>Message</div>
</div>
)
}
}
这是一个working jsfiddle demo ,从你的 fork 出来。
关于javascript - 如何在 react 中将组件滚动到底部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41596411/
我是一名优秀的程序员,十分优秀!