Использовать атрибут объекта в качестве источника TextInput - PullRequest
0 голосов
/ 07 октября 2019

У меня есть мой объект, который хранится в переменной entityData. Я хочу напечатать текущие значения атрибутов из моего объекта в <SimpleForm>. Я предполагал, что это будет просто, но по некоторым причинам значения не будут печататься. Мой объект выглядит так:

enter image description here

И я попробовал этот код:

const entityData = this.state.entityData;
return (
<SimpleForm
    form="post-quick-create"
    resource={this.props.resource}
    toolbar={null}
 >
    <TextInput source={entityData.bgColor} label="Background Color" />
    <TextInput source={entityData.caption} label="Caption" />
    <BooleanInput source={entityData.enabled} label="Enabled" />
    <TextInput source={entityData.image} label="Image" />
    <TextInput source={entityData.name} label="Image" />
    <TextInput source={entityData.textColor} label="Text Color" />
    <TextInput source={entityData.type} label="Type" />
    <SaveButton saving={isSubmitting} onClick={this.handleSaveClick}/>
</SimpleForm>

);

Я пытался console.logentityData переменная в форме и она присутствует как и все ее атрибуты. Так что я действительно растерялся, почему не могу распечатать эти значения в форме.

Есть идеи, как это решить?

Заранее спасибо.

1 Ответ

1 голос
/ 08 октября 2019

Вам необходимо заменить исходную record, которую вы устанавливаете, на {...this.props} для вашего штата. Хотя я не рекомендую это, так как это может вызвать некоторое отрывочное поведение позже. Также source должна быть строкой, а не значением, как в вашем примере.

<SimpleForm {...this.props} record={this.state}>
   <TextInput source='entityData.bgColor' label="Background Color" />
   <TextInput source='entityData.caption' label="Caption" />
   <BooleanInput source='entityData.enabled' label="Enabled" />
   <TextInput source='entityData.image' label="Image" />
   <TextInput source='entityData.name' label="Name" />
   <TextInput source='entityData.textColor' label="Text Color" />
   <TextInput source='entityData.type' label="Type" />
</SimpleForm>

Обратите внимание, как я установил record в this.state. Таким образом, вы должны получить значения для входных данных.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...