Я использую response-localize-redux для своего многоязычного приложения и MySQL для извлечения данных.Для одного из моих действий нужны данные о локали, чтобы передать их бэкэнду в качестве аргумента, чтобы бэкэнд отвечал правильными данными.Но к тому времени, когда станет доступен язык, будет вызвано действие и произойдет сбой приложения, как я могу решить проблему?Вот код:
import React, { Component } from 'react'
import RestaurantCard from './RestaurantCard';
import {Row} from 'react-bootstrap';
import { connect } from 'react-redux';
import {getAllRestaurants} from "../actions/restaurantActions";
import { withLocalize } from 'react-localize-redux';
class RestaurantCardColumns extends Component {
constructor(props){
super(props);
}
componentDidMount(){
this.props.getAllRestaurants(this.props.activeLanguage);
}
render() {
if(this.props.loading || this.props.restaurants === null){
return <p>Loading...</p>
} else {
return (
<Row>
<RestaurantCard data = {this.props.restaurants[0]}/>
<RestaurantCard data = {this.props.restaurants[1]}/>
<RestaurantCard data = {this.props.restaurants[2]}/>
<RestaurantCard data = {this.props.restaurants[3]}/>
</Row>)
}
}
}
const mapStateToProps = (state) =>{
return {
auth: state.auth,
errors: state.errors,
restaurants: state.restaurData.restaurants,
loading: state.restaurData.loading
}
}
export default connect(mapStateToProps, {getAllRestaurants})(withLocalize(RestaurantCardColumns));
Моя проблема в этой конкретной строке:
this.props.getAllRestaurants(this.props.activeLanguage);
Когда я отлаживаю, я вижу, что activeLanguage
доступен в render()
жизненном цикле.Как я могу ждать этого свойства, прежде чем позвонить getAllRestaurants