ページを読み込んでいるときに、「Uncaught TypeError: Cannot read property 'data' of null」というエラーがコンソールに表示されます。コンストラクターで、redux-promise を使用して axios を使用してデータの外部 API を呼び出し、プロパティをステートレス コンポーネント (TranslationDetailBox) に渡します。データが到着し、子コンポーネントはすぐに props を受け取ります (ページは問題ないように見えます) が、最初にエラー メッセージが表示されます。
this.props.translation は API 呼び出しの前は空であり、状態が外部データで更新される前にレンダリングが行われます。これが問題だと思いますが、解決方法がわかりません。
class TranslationDetail extends Component {
constructor(props){
super(props);
this.props.fetchTrans(this.props.params.id);
}
render() {
return (
<div className="container">
<TranslationDetailBox text={this.props.translation.data.tech}/>
<TranslationDetailBox text={this.props.translation.data.en}/>
</div>
);
}
}
function mapState(state) {
const { translation } = state;
return { translation };
}
...