2017-11-29 10 views
0

ファイルToRender.js:"require"でインポートされたコンポーネントをどのようにレンダリングできますか?

... 

const ToRender = props => (
    <View /> 
); 
export default ToRender; 

別のファイル:

let ToRender = require('./ToRender'); 
class App extends Component { 
    render() { 
     return (
      <View> 
       {ToRender} // got Invariant Violation error 
      </View> 
     ); 
    } 
); 

私は "輸入"

import ToRender from './ToRender'; 
// then use it in the render method <ToRender /> 

でそれを行うことができることを知っている。しかし、私はそれが可能だかどうか思ったんだけど「必要」でこれを行うには

答えて

0

これを試す:

export default class myView extends React.Component { 
    render() { 
    return (
    <View/> 
    ) 
    } 
} 

そして、それをインポートし、それを使用する:これは動作するはず

import myView from "./myView.js"; 

<myView> 

。 RequireはReact-Nativeではサポートされていません。それは "インポート"に置き換えられました。お役に立てれば!

+0

私は悲しいので、私はそれをインポートで行うことができます。 "require"はサポートされていませんか? 私はまだ公式のドキュメンタリーでそれを見ます。例えば、Imageコンポーネントは、ソースをロードするためにそれを使用します: <画像ソース= {require( './ img/favicon.png')} /> – Obi1

+0

@ Obi1うん、私はそのビットを見ていませんでした。サポートされていますが、動的にコンポーネントをロードすることはできません。 "インポート"は非同期で、コンポーネントを動的に読み込みます。これは私が知っている主な違いです。なぜrequireを使いたいのですか?あなたがすでに知っているように、インポートはあなたのためにうまくいくでしょう。 – ShaneG

+0

イメージを処理するための同様のAPIを持つコンポーネントを開発するので、require( "some/path")をImageとして渡す必要がありますが、イメージとは異なり、コンポーネントにはJavaScriptの実装しかありません。 – Obi1

関連する問題