我正在进行数组排序。为此,我在状态中存储了两个变量,一个用于更改数组,第二个用于默认的数组,以便我可以返回原始数组。然而,当改变时,两个数组都会改变。我该如何解决这个问题呢?有没有可能设置某种常量?有什么建议?我需要this.state.messagesDefault是常量。
class Messages extends Component {
state = {
messages: [],
messagesDefault: []
};
componentDidMount() {
this.props.getMessages();
}
componentWillReceiveProps(nextProps) {
console.log(333)
this.setState({
messages: nextProps.messages.messages,
messagesDefault: nextProps.messages.messages
})
}
onSort(type) {
// when i call this function both arrays are changing, but i need this.state.messagesDefault to stay by default
let messagesDefault = this.state.messagesDefault;
if (type === 'all') {
} else if (type === 'new') {
messagesDefault.sort((a, b) => (a.notReaded) ? -1 : (a.lastMessage === b.lastMessage) ? -1 : 1);
} else if (type === 'deal') {
messagesDefault.sort((a, b) => (a.lastMessage === b.lastMessage) ? 1 : (a.accpet && a.accpet.author && a.accpet.executor) ? -1 : 1);
}
// console.log(messagesDefault)
this.setState({messages: messagesDefault})
}
render() {
console.log(this.state.messages)
return (
<div>
</div>
)
}
}
https://stackoverflow.com/questions/56266343
复制相似问题