【发布时间】:2016-10-23 18:38:09
【问题描述】:
这被认为是最佳做法吗?还是有更好的解决方案来防止不必要的重新渲染?
我正在尝试渲染数千行。每行有许多单元格。但是当我在我的一个减速器中更新不相关的状态时,我很难防止瓶颈。
import React, { Component } from 'react'
import _ from 'lodash'
import Cell from './Cell'
export class Row extends Component {
shouldComponentUpdate (newProps) {
return !_.isEqual(newProps.item, this.props.item)
}
componentDidUpdate (prevProps, prevState) {
console.log('row is updated!')
}
render () {
const { item } = this.props
return (
<div className='rowek'>
{item.map((i, key) => <Cell key={key} item={i}/>)}
</div>
)
}
}
export default Row
【问题讨论】:
-
我有类似的结构,我也使用 shouldComponentUpdate。
-
是的,这很正常,如果您使用的是最新版本的 React,您可以使用
class Row extends PureComponent,它正是这样做的。
标签: reactjs redux react-redux