Tôi mới sử dụng React. Tôi bị mắc kẹt về điều này, sẽ thực sự đánh giá cao một số trợ giúp!Tiểu bang không cập nhật khi nhận được đạo cụ mới (ReactJS)
Thành phần chính sẽ chuyển mảng vào thành phần con này. Khi tôi console.log (this.props.repairs) nó cho tôi thấy một mảng của 4. Tôi đang cố gắng để cập nhật this.state.sortedDataList bất cứ khi nào mảng sửa chữa được thông qua in Console.log (this.state) vẫn còn hiển thị sortDataList dưới dạng một mảng trống.
Tôi đang làm gì sai? Cảm ơn rất nhiều, đánh giá cao sự giúp đỡ nào.
class Repairs extends React.Component {
constructor(props) {
super(props);
this.state = {
sortedDataList: []
};
}
componentWillReceiveProps(nextProps) {
if(this.props != nextProps) {
this.setState({
sortedDataList: this.props.repairs
});
}
}
render() {
console.log(this.props);
console.log(this.state);
return (
<div></div>
);
}
}
Câu trả lời từ Jayce444 và Shubham là chính xác. Tôi sẽ thêm rằng bạn nên thực sự xác định xem bạn cần nhà nước để đại diện cho những gì bạn muốn hiển thị trên trang hoặc nếu bạn có thể sử dụng đúng đạo cụ. Có các thành phần phản ứng chức năng 'thuần túy' (các thành phần chỉ hiển thị dựa trên những gì có trong đạo cụ) luôn là mục tiêu tốt. –
Tại sao bạn đặt đạo cụ cho tiểu bang? những gì tốt mà làm cho bạn? bây giờ bạn có một bóng của cùng một dữ liệu được lưu trữ trong tiểu bang cũng như đạo cụ. Để thêm vào đó đạo cụ được coi là bất biến có nghĩa là bạn không và không nên thay đổi chúng. thiết lập đạo cụ để nhà nước như thế này là làm cho dữ liệu bất biến của bạn bây giờ có thể thay đổi, đó là một Anti-Pattern và là một không lớn không. Đọc phần này để hiểu thêm http://stackoverflow.com/a/28785276/2733506 –