我正在制作我的第一个反应+ redux应用程序,我有一个问题。我有一个呈现输入字段的组件,并且在其上面添加了一些内容时,我需要它来滚动它。
所以,我刚刚在组件componentDidUpdate()生命周期方法中添加了scrollIntoView:
componentDidUpdate() {
console.log("scroll");
this.refs.input.scrollIntoView();
}
唯一的问题是这个组件每次都不会重新渲染(因为它没有任何变化)所以scrollIntoVIew只被调用一次。
我可以强制更新到组件,但这不是很好的做法不是吗?在这种情况下我该怎么办?
答案 0 :(得分:0)
每次添加内容以重新呈现组件时,您都可以调用string szConnection = String.Format(@"Data Source={0};Initial Catalog=master;User ID={1};Password={2};");
using(SqlConnection connection = new SqlConnection(szConnection))
{
connection.Open();
// Use the connection
}
并更新组件状态中的某个对象,并调用setState
。
你也可以使用第二个参数(回调)到componentDidUpdate
,但是React文档说明了setState
的第二个参数:
第二个参数是可选的回调函数 完成setState后执行并重新呈现组件。 通常我们建议使用componentDidUpdate()来实现这种逻辑 代替。