Как реализовать remote: true для react (rails)?

114
19 апреля 2021, 13:00

Создаю форму таким образом:

= form_for Review.new do |f|
  = react_component "Popups/ReviewPopup", {name: "review-popup"}

Внутри Popups/ReviewPopup у меня поля формы с нужными name.
И при клике на сабмит происходит:

<button
    onClick={e => {
      onClick(e);
      e.preventDefault();
    }}
    className="button popup-footer__button"
  >
    Отправить
</button>

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

В общем-то при обычной отправке (если закомментировать onClick(e); e.preventDefault();) все работает прекрасно. Но не совсем понятно как реализовывать remote: true. Причем хотелось бы реализовать именно поведение remote: true, а не отлавливать при клике данные из полей и отправлять их с помощью axios на сервер.

Answer 1

remote: true просто добавляет data-remote в форму. А jquery rails добавляет ajax к формам (и ссылкам), где есть data-remote.

На мой взгляд лучше воспользоваться возможностями react и попробовать реализовать функционал через axios.

Но если очень хочется, то можно добавить библиотеку rails-ujs.

import Rails from 'rails-ujs';

И для отправки формы:

Rails.fire("my_element", 'submit');

Вот тут может быть более подробно описано.

READ ALSO
Подключение аудио к сайту

Подключение аудио к сайту

Мне бы хотелось, чтобы музыка начинала играть как только подгрузилась страница, но почему-то не работает и в консоль выскакивает ошибка

94
Как закрепить стрелку?

Как закрепить стрелку?

У меня есть шкала со стрелкой и 12 checkboxПри клике по checkbox, стрелка меняет своё положение (transform/rotate), но у меня не получается её закрепить

102
Как экспортировать данные взятые из asyncstorage?

Как экспортировать данные взятые из asyncstorage?

Я пишу приложение на react native с использованием expo, а для навигации использую react-navigationКогда человек регистрируется или входит в аккаунт, я сохраняю...

94