Как отключить оптимистичные обновления пользовательского интерфейса в react-admin?

Можно ли отключить оптимистичный пользовательский интерфейс в react-admin или его можно настроить во время выполнения?


person Ashim Saha    schedule 12.06.2018    source источник


Ответы (2)


Отключить отменяемое свойство в компоненте редактирования:

<Edit undoable={false} title={<EditTitle />} actions={<EditActions />} {...props}>
person Aigars Matulis    schedule 18.06.2018
comment
есть ли способ установить undoable={false} для всех форм глобально? Спасибо - person Michail Michailidis; 07.09.2018
comment
создайте свой собственный компонент на основе компонента Edit и установите для свойства undoable значение false по умолчанию - person Aigars Matulis; 07.09.2018
comment
да, я подумал об этом, я ожидал, что могу просто передать undoable = {false} в ‹Admin› - person Michail Michailidis; 08.09.2018
comment
Если вы хотите, чтобы ваша отключаемая функция всегда была ложной, создайте компонент Edit с отменяемыми реквизитами, установленными на false, и вместо того, чтобы постоянно импортировать компонент Edit из react-admin, вы импортируете только что созданный компонент Edit. - person François Alexandre COLOMBANI; 26.02.2019
comment
Я хочу также отключить оптимизированный рендеринг для страницы Show, но передача undoable={false} не работает. - person tjgragg; 25.04.2019

Как вы знаете, undoable нельзя установить на Create компоненте. Вот способ справиться с оптимистичным рендерингом, если ваша props страница отличается от страницы Create, а не отключать ее.

Это пример обработки оптимистичного рендеринга на <Show/>:

const ItemShow = (props) => {
  const record = props;
  return (
    <Show
      {...props}
    >
      <ItemCreatedScreen />
    </Show>
  );
};

const ItemCreatedScreen = ({ record }) => {
  if (record.isFromCreatePage) {
    return <Loading />;
  } else {
    return <ItemView record={record} />;
  }
};

Пользовательская опора isFromCreatePage из формы компонента Create должна помочь вам решить, действительно ли опора со страницы создания.

Оптимистичный рендеринг отправит запрос в API через несколько секунд, между тем пользовательский интерфейс может отображать знак <Loading/>, который, я мог бы добавить, на очень короткий промежуток времени. После этого запрос получает данные с сервера, которые могут быть переданы на страницу <ItemView/>.

person Ananth George    schedule 28.05.2020