0
私はいくつかの小道具を渡そうとしているが、を取得するReactコンポーネントがあります。キャッチしていないエラー:App.render():有効なReact要素(またはnull)を返す必要があります。未定義、配列またはその他の無効なオブジェクトを返した可能性があります。私はスナップショットの中でそれを返そうとします。ReactコンポーネントへのFirebaseデータ
// cache settings data
fire.settings = {};
fire.settings.ref = fire.database.ref('settings');
// main app build
class App extends Component {
render() {
// get values from firebase
fire.settings.ref.on('value', function(data) {
return (<Home settings={data.val()} />);
});
}
}
だから私は、発電機をいじり始めたと私は、コンポーネントがレンダリングするために取得するが、私はちょうど私の小道具設定で空のオブジェクトを取得します。あなたが返すようにしようとしているコンポーネント
// init render
fire.settings.ref.on('value', function(data) {
ReactDOM.render(
<App settings={data.val()}/>, document.getElementById('app'));
});
export default App;
私はいくつかのエラーを受け取ります - 1.警告:getInitialStateは、プレーンJavaScriptクラスであるAppで定義されています。これは、React.createClassを使用して作成されたクラスに対してのみサポートされています。代わりに状態プロパティを定義することを意味しましたか? 2. Uncaught TypeError:nullのプロパティ 'data'を読み取ることができません。 – jadeallencook
'getInitialState()'は(React.createClass()を使用して)ES5用です。 ES6クラスの場合は、コンストラクタで状態を設定するだけです。 'コンストラクタ(小道具){スーパー(小道具); this.state = {data:null}; } 'さらに、ES6 +では、クラス内でプロパティ初期化子を使用して状態を設定することができます:' state = {data:null} ' – nbkhope
おっと!私はES5とES6の構文を混乱させました。それを修正し、答えを更新しました! –