2017-09-28 3 views
0

私は予算管理のためにadmin-on-restを使用しています。管理パネルを去年に戻したい場合は、それに応じてグリッド上のデータをレンダリングします。条件付きでAdmin-on-RestのCreateFormとEditFormを非表示にする

私たちのクライアントは、管理パネルから作成ボタンと編集ボタンを非表示にしたいと思っています。データが去年のものならそれをそのまま表示します。

私はこのようなApp.jsで自分のコードを変更しようとしました。 このコードがうまくいき、私はちょうどcreateformで試しました。しかし、フォームを保存しようとすると、リストへのルーティングは行われません。以下のリンクでJSXコードを見ることができます。

App.js Code

他の最適な解決策がある場合。私を案内してください。

+1

コードを画像として掲載しないでください。 –

答えて

0

非常に重要:常にコードを共有し、画像を共有しないでください。ペーストをコピーして修正するのは非常に難しい。

1)本当にAdminを使用することはできません。編集ボタンの表示を制御するには、それをデータグリッドで制御する必要があります。

export const SomeList = (props) => { 
    return (
    <List {...props} 
      > 
     <Datagrid> 
     <TextField source="id" label="Id" /> 
     {props.record.date >= thisYearBeginning ? 
      (<EditButton />) : null 
     } 
     </Datagrid> 
    </List> 
) 
} 

作成を制御するのが難しくなります。 1つの方法は、作成ボタンを再作成し、それを以下のドキュメントを使用してカスタムアクションとしてリストに渡すことです。上記のようなロジックを使用して、customCreateを表示するかどうかを制御することもできます。作成の再作成に問題がある場合は、私に質問してください。

https://marmelab.com/admin-on-rest/List.html#actions

+0

私はコードのイメージを置くことをお詫び申し上げます。しかし、自分のコードに永続的なエラーが出ていたので、私は無力でした。 編集ボタンに問題はありません。私はそれを隠すために同じ方法を試みた。私は作成ボタンで問題があります。 –

+0

ええ、作成ボタンがトリッキーになります。私は働くと思う戦略を概説しました。上記の質問を編集して、ここで私にバズを送ることができます。私は試してみることができます。コードを貼り付けて依存関係を再リンクすることで、通常はAORコンポーネントを再作成することができます。その後、カスタム変更を加えることができます。 –

+0

また、Adminのカスタムロジックは、以下のような操作をしても機能します( currentPermission === '何か'():() )丸い中括弧は反応の秘訣です –

関連する問題