2016-11-28 1 views
0

ニュース記事のコンテンツを取得するために気の利いたAPIを使用しています。本体には質問と回答のような異なるフィールドが含まれています。私はJSONとしてコンテンツを取得するためにAPIを使用し、私はオブジェクトの配列としてボディを取得します。反応のあるコンポーネントに巧妙なAPIのコンテンツタイプをマップする

 "body": [ 
     { 
     "question": "what's up?" 
     }, 
     { 
     "answer": "good good" 
     } 
    ], 

ボディ配列内の各フィールドを異なる反応コンポーネントにマップし、そのコンポーネントに正しいプロップを渡すことができるのだろうか?あなたが達成したい何

<div {...other}> 
    {items.map((item, key) => (
    React.cloneElement(children, { 
     key, 
     ...item, 
    }) 
    ))} 
</div> 
+0

はい、できます。これまでに何を試しましたか?コンポーネントとプロパティの詳細については、https://facebook.github.io/react/docs/components-and-props.htmlを参照してください。 – Robban

+0

私は物事が含まれているか分からない問題を介してマッピングしてみました。ボディ配列は異なる要素の配列のようなものなので、ある種のスタイリングではpが返され、同じものは答えが –

+0

となるでしょう。あなたが試したことと達成しようとしていることをもっと明確にするために質問にいくつかのコードを追加することをお勧めします。私はあなたが「さまざまな要素の配列」と「特定のスタイリングを持つp」という意味を理解していません。 – Robban

答えて

0

は基本的にTextLongTextなどのようなあなたのcontentType内のフィールドの各type ...反応する構成要素へのマッピングです。

それはあなたが最初にあなたのcontentTypeを要求し、私たちは私たちのdiscovery appに同じアプローチを使用して、あなたの反応コンポーネントにそのフィールドを通過し、typeプロパティマップに基づいて可能性の場合なら。

このコードsnippetは、これを達成する方法の概要を示します。 BTWはreactとreduxを使用して作成され、contentfulで作成されたあらゆるタイプのコンテンツと互換性があります。あなたの現在のプロジェクトを作成するためにもっと便利なものが見つかるでしょう。

ベスト、

ハレド

+0

はい、私は他のcontentTypesへの参照であるbodyという名前のフィールドを持つmain contentTypeを持っています。メインのcontentTypeからこれらのフィールドにアクセスできますか、またはbodyフィールドのすべてのcontentTypeを呼び出す必要がありますか? @Khaled Garbaya –

+0

'client.getContentTypes()'を使ってすべてのcontentTypesを要求し、すべてのリンクに対して 'sys.id'を使ってリンクされたContentTypeのコレクションを取得できます。したがって、マッピングはメインのcontentTypeから再帰的になり、リンクされたcontenTypeの数に基づいて深くなります。 –

関連する問題