Прочитав официальный документ здесь, я наткнуться на эти заявления
...компонент
<Field>
может получить доступ к текущей записи через ее контекст. Свойство name служит селектором свойства записи для редактирования.
Затем я пытаюсь понять утверждения этого эксперимента:
const CustomInput1 = () => (
<span>
<Field name="title" component="input" />
</span>
);
export const PostCreate = (props) => (
<Create {...props}>
<SimpleForm>
<TextInput source="title" />
<CustomInput1/>
</SimpleForm>
</Create>
);
Оказывается, свойство Field name
и свойство TextInput source
связаны друг с другом в том смысле, что всякий раз, когда я делаю какое-либо изменение в одном вводе, значение другого ввода также изменяется соответствующим образом.
Мой вопрос. Почему невозможно воспроизвести тот же эффект с помощью компонента без состояния?
const CustomInput2 = ({ record, source }) => (
<input type="text" value={record[source]}/>;
);
export const PostCreate = (props) => (
<Create {...props}>
<SimpleForm>
<TextInput source="title" />
<CustomInput2 source="title"/>
</SimpleForm>
</Create>
);
Насколько я понимаю, оба входа в последнем случае связываются с record['title']
и используют один и тот же объект record
, не так ли?
Фактическая причина, по которой я это делаю, заключается в том, что я хочу изменить все другие значения ввода на основе обновления одного единственного ввода. Мое наивное понимание состоит в том, что этого можно добиться с помощью общего record
.