React本机正在更改的实例道具未重新呈现组件



我有一个名为order的实体类

const order = new Order({status: 'available'});
export default class Order {
constructor({status}) {
this.status = status;
}
isCanceled() {
return this.status === CANCELED;
}
}

order传递给组件时抛出mapStateToProps当状态发生变化时。mapStateToProps将以新状态再次调用,但组件将不会以新数据呈现

但如果我将order作为标准对象传递,它将使用新的数据重新渲染

此代码不起作用

const mapStateToProps = (state, props) => {
const order = new Order({status: 'available'});
return {
order,
};
};

此代码适用于

const mapStateToProps = (state, props) => {
const order = new Order({status: 'available'});
return {
order: {...order},
};
};

我需要第一个代码来工作,因为我使用组件内部对象的一些函数,如isCanceled()

大家好,我知道出了什么问题

问题出在我的减速器上,因为我直接改变了状态,所以这个方法不是纯函数。所以,react没有意识到道具的变化

该链接有一个示例如果道具改变,React Native组件不会重新渲染

你能在保持{…order}(你正在使用的第二种方法(的同时尝试一下吗

export default class Order {
constructor({status}) {
this.status = status;
this.isCanceled = this.isCanceled; //add this line
}
isCanceled() {
return this.status === CANCELED;
}
}

相关内容

  • 没有找到相关文章

最新更新