Изменение значения TextInput в Admin-on-Rest перед проверкой?

В admin-on-rest, как мы можем использовать обработчик onChange для изменения значения TextInput во время ввода (т.е. перед проверкой)?

См. пример:

const handleChange = (e, newValue) => {
    const value = newValue.toUpperCase();
    // ???? How do we inform the TextInput of the new value, since we do not have a state inside this component but only in REDUX? 
};

...

 <Edit title={<TitleEdit />} {...props}>
    <SimpleForm validate={validateCreateEdit}>
        <TextInput label="BRAND" source="brand" onChange={handleChange.bind(this)} />
    </SimpleForm>
</Edit>

Спасибо.


person user2078023    schedule 11.12.2017    source источник


Ответы (1)


Вы можете использовать onChange для обновления состояния родительского компонента. Там вы можете переформатировать значение в верхний регистр.

Затем вы можете использовать свойство значения пользовательского интерфейса материала для отображения введенного значения в состоянии.

http://www.material-ui.com/#/components/text-field

РЕДАКТИРОВАТЬ: В приведенном выше предположении предполагается, что вы будете создавать компонент с отслеживанием состояния для хранения и форматирования правильного значения. Поскольку обычно не требуется отправлять форму до тех пор, пока пользователь не заполнит все поля, отправка действия отправки будет излишним. По существу переформатируйте значение локально, пока пользователь не будет готов отправить форму.

person kunal pareek    schedule 13.12.2017
comment
Спасибо, Кунал, не могли бы вы продемонстрировать, что вы подразумеваете под обновлением состояния родительского компонента? Вы имеете в виду отправить действие? Мне не очень понятно, как это делается, чтобы SimpleForm получал это значение из состояния REDUX, не могли бы вы рассказать об этом подробнее? Спасибо еще раз! - person user2078023; 16.12.2017