Tôi đang cố thực hiện cuộc gọi không đồng bộ tới một API trong phương thức componentWillMount. Thật vậy, tôi muốn phương thức render
được thực hiện sau phương thức componentWillMount khi tôi cần phải chuyển props
đến thành phần trong phương thức render
của tôi.Gọi không đồng bộ trong componentWillMount kết thúc sau khi render phương thức
Đây là mã của tôi:
class TennisSearchResultsContainer extends React.Component {
componentWillMount() {
// TODO: Build markers for the map
// TODO: Check courtsResults object and database for tennis court
this.courtsMarkers = this.props.courtsResults.map((court) => {
return new google.maps.Marker({
position: new google.maps.LatLng(JSON.parse(court.LOC).coordinates[1], JSON.parse(court.LOC).coordinates[0]),
title: court.NAME,
animation: google.maps.Animation.DROP
});
});
}
render() {
return <TennisSearchResults criterias={this.props.criterias} courtsMarkers={this.courtsMarkers} />;
}
}
Tôi không hiểu thì tại sao phương pháp làm cho tôi dường như không chờ đợi cho cuộc gọi không đồng bộ để hoàn thành và vượt qua đạo cụ xác định thành phần để con tôi ...
Tôi có đúng không? Và tôi nên làm gì để sửa lỗi đó? Cách xử lý này là gì?
bạn cần sử dụng 'componentDidMount' thay vì' componentWillMount' chỉ chạy một lần trước khi thành phần được gắn kết với DOM. Vì vậy, không đảm bảo rằng thành phần sẽ được hiển thị sau cuộc gọi AJAX. – Rowland
Phần nào của mã của bạn không đồng bộ? Có rất nhiều cuộc gọi của Google Maps và nó không rõ ràng nếu nó là một trong số họ, hoặc cái gì khác. –