我有一个React.js组件,它被渲染成这样:
<Social email={this.state.email} />;
页面上有一些事件更新了此。状态电子邮件,因此,执行render,它会向社交
组件发送一封新的电子邮件
道具。
在这个Social
组件中,我正在监听这样的更新:
componentWillReceiveProps: function(nextProps) {
console.log('received props update', nextProps.email);
this.doSomeWork();
}
控制台行被渲染两次,这使得UI在调用社交网络时闪烁两次。
我总是可以做这样的事情:
if (nextProps.email != this.props.email) {
this.doSomeWork();
}
但是感觉有点不舒服。。。
双重信息在意料之中吗?如果是这样,好奇为什么?
如果没有,追踪和消除它的最佳方法是什么?
您的Social
组件可能被渲染了两次,因为父组件上调用了两次setState
。它可能设置的属性不是电子邮件
,但是会调用渲染函数,因此社交
组件渲染两次。
您可以在社交组件中实现acidComponentUpdate
方法来防止二次渲染:
shouldComponentUpdate: function(nextProps, nextState) {
return nextProps.email != this.props.email;
}
我的react组件的构造函数被调用了两次,但我不知道为什么。我正在使用react redux存储我的应用程序的语言。我有一个基于浏览器语言设置默认语言的函数。LoginPage是第一个获得render的组件,因此我在其构造函数中调用了我的函数。基本上,它所做的就是比较并分派一个动作。当我用redux开发工具检查我的状态时,我看到它被调度了两次。我在构造函数中打印了虚拟数据,它也打印了两次。 登录页
所以就像标题所说的,我的应用程序的主页因为某种原因渲染了两次,我不知道为什么。从我的浏览器路由器,我最初调用一个JS文件,从那里我调用我的HomePage组件和React路由器,但然后我的页面渲染两次,我不知道为什么。 我的浏览器路由器(index.js): 然后pp.js被称为: 然后我的主页组件(index.jsx): 和路线。js: 但是我的页面是这样渲染的: 我真的很困惑,所以任何建议都会
问题内容: 我有一个像这样呈现的React.js组件: 页面上有一些事件会更新,结果是经过渲染,这会将新的prop 发送到组件。 在此组件中,我正在侦听这样的更新: 该控制台行被渲染两次,这使UI两次闪烁,同时调用社交网络。 我总是可以做这样的事情: 但是感觉有点… 是否会出现双重消息?如果是这样,好奇为什么? 如果没有,找到并消除它的最佳方法是什么? 问题答案: 您的组件可能被渲染两次,因为在父
这是父组件: 这是子组件: prop不会打印为子组件中的内容。 可能是什么问题?,已经在这个问题上很久了
嗨,我有下面的代码给了我奇怪的行为 按钮cont_btn是bootstrap 2模式上的一个按钮。它包含一个继续按钮和一个关闭按钮。 如果我选择close按钮或单击modal外部以将其取消,然后重新打开modal,则函数将被调用两次。 我试过使用 并且我在 click不会被调用两次。在调试期间,我发现脚本重新进入 在页面加载中,我看到 但代码没有进入函数,它将跳到关闭按钮。我想这是正在初始化的两个
我是个新手,所以不要用任何非技术性的词语。我有一个父组件,它在单击按钮时有一个按钮元素,调用一个函数来创建一个新对象。我想要的是,当用户单击这个按钮时,子组件应该呈现在父按钮元素下面,每次单击按钮时,新对象应该作为道具传递给子组件,以便它可以在屏幕上显示它,但以前调用的子组件应该保留在屏幕上。 从React导入; 类父母组件扩展反应。PureComponent{ }