2016-05-10 24 views
3

私はしばらく反応していました。私はRelay.jsを学び、採用することに非常に興奮しています。私は、複数のプロジェクトにまたがってコンポーネントを再利用可能にし、依然としてRelayを利用する方法を見つけるのに苦労しています。リレーコンテナからコンポーネントを取り外すことができました。私は正しい動きだと思いました。下記を参照してください。私はリレープロジェクトでの反応成分の分離

this.props.relay.getPendingTransactions(this.props.game) 

this.props.relay.hasOptimisticUpdate(hidingSpot) 
を見て始めていリレーについての詳細を学ぶために始めたよう

は、コンポーネント

import React from 'react'; 
    class ItemList extends React.Component { 
     createList(item) { 

      return (
       <li id={item.node.id} key={item.node.id}>{item.node.name}</li> 
      ); 
     } 
     render() { 
      let listValues = this.props.test.edges.map(this.createList); 
      console.log(this.props.test); 
      return (
       <div> 
        <h1>My List</h1> 
        <ul> 
         {listValues} 
        </ul> 
       </div> 
      ); 
     } 
    } 


    export default ItemList; 

リレーコンテナ

import React from 'react'; 
import Relay from 'react-relay'; 
import ItemList from './ItemList.js'; 
    export default Relay.createContainer(ItemList, { 
     fragments: { 

     }, 
    }); 

に反応します

ReactコンポーネントのコンポーネントレベルでRelayを使用すると、そのコンポーネントが再利用可能性をどのように維持しているかわかりません。 私はまだ中継方法を学んでいます。スタイルガイドや複数のプロジェクト(リレーを実装していない別のプロジェクト)でコンポーネントを使用する方法はわかりません。私はおそらく複数のリレープロジェクトでコンポーネントを使用することができますが、それはそれだろう。

他の誰もこの問題に直面しましたか? Facebookがそれを説明するとき https://facebook.github.io/relay/docs/thinking-in-relay.html それは、コンポーネントがリレーから疎結合されているかのように響きます。私は何が欠けていますか?

答えて

0

リアクションは、データフレームをUIフレームワークとして取り込む方法を決めるものではありません。データを強制的に(REST APIを使用して)フェッチしたり、宣言的に(たとえば、リレーを使用して)取り出すことができます。 ReactコンポーネントでRelay固有の機能(例:this.props.relay、突然変異)を使用している場合は、アプリケーションで宣言型データフェッチを使用し、リレーでリレーショナルフェッチを使用することにしました。したがって、Relayを使用しないプロジェクトでは、それらを再利用することはできません。それはフレームワークを使用することの価格、IMHOです。

Facebookはhttps://facebook.github.io/relay/docs/thinking-in-relay.htmlでそれを説明しています。コンポーネントがリレーから疎結合されているかのように聞こえます。

リレーがデカップルリアクタコンポーネントを理解することが重要です。

リレーは特定のものを解決します問題の問題。この問題は、階層またはツリーのコンポーネントがあり、その親コン​​ポーネントがその子コンポーネントのすべてのデータ要件を知る必要がある場合に発生します。親コンポーネントは道路の下にあるすべてのデータをpropsとして渡す必要があるためです。子コンポーネントのデータ要件が変更される必要がある場合、子コンポーネントのデータ要件が変更される必要がある場合、親にすべての変更を行うカスケード効果があります。

リレーは、コンポーネントツリーでチェーンを変更することなく、子コンポーネントが独自のデータ要件を個別に変更できるようにすることで、この問題を解決します。親コンポーネントは、それがカバーするどの子コンポーネントのデータ要件を宣言する必要があります。したがって、親はコンポーネントの詳細を知る必要はありません。