私は私のアプリケーションのために反応と還元を使用しています。私の問題は、私の小道具が最初に定義されていない2番目の小道具を受け取り、2番目のものは大丈夫です。だから私は小道具を使用することはできません。リアクターリダクションコールを2回
import ...
class Home extends Component {
//some code logic
render(){
console.log(this.props.header);
const header = this.props.header;
return (
<Welcome title={header.title} />
)
}
}
const mapStateToProps = (state) => {
return {
header: _.find(state.header, { 'page': 'accueil' })
}
}
export default connect(mapStateToProps)(Home);
は私に2答えを与えるにconsole.log: 1 /未定義 2/OBJ(私は必要なものという)の配列
キャッチされない例外TypeError:未定義のプロパティのタイトルを読み取ることができません。
で定義されているかどうかを確認:
第二減速
に初期状態を設定します。だから、二つのこと最初に行うことができます。 'state.header'はいつ設定されますか? API呼び出し後? render()関数の先頭に 'if(!this.props.header)return null'を追加するのと同じくらい簡単かもしれませんが、それは問題を隠して原因を修正しないかもしれません。 –
はい、APIから呼び出しています。私は子供に渡すので、それは動作しませんが、私はこのコンポーネント内の正常なループをやっている場合、それはうまく動作します。 – Nicks
これが当てはまる場合、最初にレンダリングしたとき(未だデータを持っていない)、未定義であるということは予期しないことではありません。 「null」を返すことは、コンポーネント内で「ループ」を実行していないことに注意してください。レンダリングすることはありません。初期レンダリングの場合はありません。また、より良いユーザーエクスペリエンスのために 'null'ではなく' Loading'コンポーネントを返すこともできます。 –