为什么会一直运行这个函数?
组件中是这样的:
<Tag color={this.getTagColor()}>{item.roleName}</Tag>
函数是这样的:
getTagColor = () => {
const colors = ['magenta', 'volcano', 'gold', 'green', 'blue', 'cyan'];
const index = Math.floor(colors.length * Math.random());
return colors[index];
}
运行以后color
的值会不停地变化 像是一值在运行这个函数
我希望的是运行一次就行了
如何解决呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你应该把这个方法的执行放在组件render之前,也就是componentWillMount里面,然后用state存起来
你这里一直执行是因为,在render的时候调用了getTagColor方法,然后改变了color,react检测到值改变了又会继续render,然后就无限循环了,像这种固定的值在组件渲染之间就可以先请求然后存起来用的