Tôi có một Lớp phản ứng sẽ chuyển sang API để lấy nội dung. Tôi đã xác nhận các dữ liệu sẽ trở lại, nhưng nó không tái rendering:Thành phần phản ứng không hiển thị lại khi thay đổi trạng thái
var DealsList = React.createClass({
getInitialState: function() {
return { deals: [] };
},
componentDidMount: function() {
this.loadDealsFromServer();
},
loadDealsFromServer: function() {
var newDeals = [];
chrome.runtime.sendMessage({ action: "findDeals", personId: this.props.person.id }, function(deals) {
newDeals = deals;
});
this.setState({ deals: newDeals });
},
render: function() {
var dealNodes = this.state.deals.map(function(deal, index) {
return (
<Deal deal={deal} key={index} />
);
});
return (
<div className="deals">
<table>
<thead>
<tr>
<td>Name</td>
<td>Amount</td>
<td>Stage</td>
<td>Probability</td>
<td>Status</td>
<td>Exp. Close</td>
</tr>
</thead>
<tbody>
{dealNodes}
</tbody>
</table>
</div>
);
}
});
Tuy nhiên, nếu tôi thêm một debugger
như dưới đây, newDeals
được dân cư, và sau đó một lần tôi tiếp tục, tôi thấy các dữ liệu:
loadDealsFromServer: function() {
var newDeals = [];
chrome.runtime.sendMessage({ action: "findDeals", personId: this.props.person.id }, function(deals) {
newDeals = deals;
});
debugger
this.setState({ deals: newDeals });
},
Đây là gọi giao danh sách là những gì:
var Gmail = React.createClass({
render: function() {
return (
<div className="main">
<div className="panel">
<DealsList person={this.props.person} />
</div>
</div>
);
}
});
Duh! Tôi nên biết đây là trường hợp khi đường gỡ rối sửa nó. Các ràng buộc (điều này) là điều tôi bị mất khi tôi lần đầu tiên cố gắng này. Cảm ơn, nhận xét chi tiết tuyệt vời! – brandonhilkert