npmパッケージadmin-on-restを使用して、elixir/phoenix REST APIバックエンドのバックオフィスを構築しています。編集コンテキストと更新コンテキストを分離する方法
私の質問/:ID(show action
)は、以下のフラットなJSON構造を返します。
{
id: 7
content: "<p> Question content here</p>"
points: 300
title: "Question title"
}
をそして、私のupdate action
が質問を更新するための入力として、次のネストされたJSONを期待:
{
id: 7
question: {
content: "<p>New question content</p>"
points: 400
title: "New question title"
}
}
私の問題はドット表記と関連していますadmin-on-rest
私は私のバックオフィス内edit
アクションを表現するために、次のJSコードを使用する場合は
export const QuestionEdit = (props) => (
<Edit title={<QuestionTitle />} {...props}>
<SimpleForm>
<DisabledInput source="question.id" />
<TextInput source="question.title" />
<LongTextInput source="question.content"/>
<TextInput source="question.points" />
</SimpleForm>
</Edit>
)
私はPUT要求ペイロード内の正しいデータを持っていますが、(スクリーンショットを参照してください「編集」フォーム入力でレンダリングは値が存在しません1)
およびI)が平坦ソース値と(JSコードの他の変形例を使用する場合は:
export const QuestionEdit = (props) => (
<Edit title={<QuestionTitle />} {...props}>
<SimpleForm>
<DisabledInput source="id" />
<TextInput source="title" />
<LongTextInput source="content"/>
<TextInput source="points" />
</SimpleForm>
</Edit>
)
は、 "編集" フォーム内のすべての以前の入力値が正しく表現が、PUT要求ペイロードは
はそのIと仮定すると、(スクリーンショット2を参照)、私のupdate
作用によって解析することはできませんバックエンドAPIを変更したくない場合(フェニックスコードジェネレータによって自動生成されるため)、JSコードを編集して2つの目標を達成する方法 - 以前の値を正しく表示する(ページを編集する) update
のために提供されるアクション
あなたの注意のために事前に多くの感謝!