2017-05-26 12 views
1

このコードでグローバルバリデータで検証を使用しようとすると:がなければReduxの-フォーム検証とグローバル検証で翻訳を使用する方法

Warning: Failed prop type: Invalid prop `errorText` supplied to `TextField`, expected a ReactNode. 

:私は次のエラーを取得する

errors.fieldMissing = [translate('aor.validation.fieldMissing')]; 

translation()は、文字列の配列にエラーを設定するだけで、すべて正常に動作します。

グローバル検証でtranslation()を使用するにはどうすればよいですか?例えば

答えて

1

AOR example postsから編集):

<SimpleForm defaultValue={{ average_note: 0 }} validate={(values, props) => { 
    const errors = {}; 
    ['title', 'teaser'].forEach((field) => { 
     if (!values[field]) { 
      errors[field] = [props.translate('aor.validation.required')]; 
     } 
    }); 
... 

アドホックを翻訳し、翻訳し小道具の短い例:

import { translate as translator } from 'admin-on-rest'; 
const Title = translator(({ record, translate }) => <span>{record ? translate('title.product', { name: record.name }) : ''}</span>); 
+0

おかげでトリックをした多くのことを、!このシナリオで 'props.translate()'と 'translate()'が異なる振る舞いをするのはなぜですか? – willi

+1

admin-on-restからインポートする翻訳は、上位コンポーネントです。それはラップされたコンポーネントに翻訳小道具を与えます。この翻訳は、実際の文字列変換を行います。混乱を避けるためにこれを行うことができます: 'import {translate as translator} 'から' admin-on-rest''。 – wesley6j

関連する問題