私は、次のルートを定義するためにreact-router
を使用:このreactjsコンポーネントの小道具をいつも初期化するには?
<Route
path="/plan"
components={App}
>
<Route
path="try/:planCategory"
components={PlanTrialContainer}
/>
<Route
path="pay/:planCategory"
components={PlanPurchaseContainer}
/>
</Route>
アイデアがあることである:ときに、ユーザの訪問のURL /plan
、彼はそうでないコンテンツがtry/...
またはpay/...
App
クラスは、私がをしようとすると、私は、このエラーメッセージが表示されます
import React, { Component } from 'react';
import { Menu } from './Menu';
import PlansOverviewContainer from './PlansOverviewContainer';
export default class App extends Component {
render() {
const { children } = this.props.children;
let component = null;
if (children) {
component = children;
} else {
component = PlansOverviewContainer;
}
return (
<div>
<Menu />
{component}
</div>
);
}
}
です
TypeError: Cannot read property 'children' of null
App.render
/Users/antkong/dev/myproject/plan/app/scripts/components/App.js
私は
const children = this.props ? this.props.children : null;
に
const { children } = this.props.children;
から行を変更した場合は動作します。
私の推奨バージョンは最初のバージョンです。すなわち、this.props
は何を問わず初期化する必要があります。 prop
をどのように初期化することができますか?私が使用できるコンポーネントはRouter
ですか?
コンストラクタの追加は何も変更しません。私の答えを見てください。 – patrick