2017-07-28 8 views
5

ルートでnullをレンダリングしたいので、nullをレンダリングするフルツリーを持つことができますが、Reactのコンポーネント(+ライフサイクルメソッド)構造を利用するだけです。ルートをnullとしてレンダリングする(DOMlessスコープでレンダリングする)

"null null concept"についての情報です:https://github.com/joshwcomeau/return-null - 反応confからのライティングトーク。

私は電子アプリを作っています。主要な範囲では、domはありません。この主なスコープ(index.js)には私のreduxストアがあり、ルートを含めてツリー全体にnullが返されます。このようReactDOM.renderを使用するので、私が必要としていますレンダリング初期のためにしかし、私は最初にそれをレンダリングすることはできません。私はDOMを持っていない

ReactDOM.render(<AllNullStuff />, document.getElementById('something')) 

を、それをレンダリングするためにとにかくありますか?

私は、rootとしてnullをしようとすると、私はエラーを取得する:

Error: _registerComponent(...): Target container is not a DOM element.

はそう何DOMを必要としない完全nullツリーをレンダリングする方法はありますか?

+2

これは興味深いだけでなく奇妙です。より高いレベルの抽象化。どのように動作するはずですか? React ** DOM **内のものをレンダリングします。実際には何もレンダリングする必要はありません。 :)) –

+1

コメントのための@Kinduserありがとう! :)それは非常に便利です、私はメイン/エントリ "背景" index.jsはDOMを持っているので、私は空のdivをレンダリングするので、私はブラウザの拡張機能でこれをプルすることができた、 「ヌル」。バックグラウンドツリーは、状態の変化に対応するためのものです。 'componentDidUpdate'、' componentDidMount'、および 'componentWillUnmount'は、' return null; '要素で最も頻繁に使われますが、' render'メソッドは全く使われません。 – Noitidart

+1

あなたを助けたいですが、私はできません:(たぶん、Reactのgithubなどのヒントを探すべきでしょう) –

答えて

0
  1. 電子にはDOMがあります。
  2. DOMを持っていない場合は、DOMをレンダリングする方法がないことを意味します。それが存在しない場所でDOMをどのようにレンダリングするのですか?
  3. p1をチェックすると、電子アプリにDOMがあり、いくつかの設定の後にウェブサイトの開発と完全に同じであると、間違っているようです。
  4. あなたはツリーを持つことはできません。はい、他のタグにnullを入れることはできますが、null自体には子ができません。

このようにします。

ヌルを#rootにレンダリングすると、空のタグとして表示されますが、その中には空ではありません。

render() { 
    return null; //how to put child tags in it? No way... 
} 
+0

ありがとうMaksym、私はDOMがない電子のバックグラウンドページでレンダリングしようとしていた。React NativeにはDOMもないので、どうやってやっているのか興味深いです。DOM-lessへのブートストラップの仕方についてもっとよく知られていたと思います。 – Noitidart

関連する問題