为什么列表中的每个项目(使用PureComponent)重新渲染(阿波罗中)

时间:2018-09-13 07:19:39

标签: javascript reactjs apollo

我现在使用React + Apollo

我通过update中的immutability-helper更新列表。

当我将某些项目推入列表时,发现每个项目(扩展PureComponent并具有键)都重新渲染。

//列表

list.map(edge => (
    <div key={edge.node.id} className="xxxx">
        <Item {...edge.node} />
    </div>
))

//项目

class Item extends React.PureComponent {
    render() {
        const { id, title ...otherProps } = this.props;

        return (
            <div>
              // ....
            </div>
        )
    }
}

PureComponent使用shallowEqual。阿波罗的数据是不可变的。

为什么先前存在的项目会重新渲染?

0 个答案:

没有答案