【问题标题】:How to implement remote: true for react (rails)?如何实现远程:react(rails)的true?
【发布时间】:2025-11-26 13:05:01
【问题描述】:

我是这样创建表单的:

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

Popup/PreviewPopup 内,我有一个带有所需name 的表单字段。

当点击提交时:

const SendButton = ({ onSubmit }) => (
  <button
    onSubmit={e => {
      e.preventDefault();
      onSubmit(e);

    }}
    className="button popup-footer__button"
  >
    Send
  </button>
);

之后,无需重新启动,应发送表单中的数据并且消息应显示在浏览器中。

在正常发送期间,一切正常。

remote: true如何实现?我想实现一个remote: true,而不是在用户单击并使用axios 将它们发送到服务器时从字段中捕获数据。

【问题讨论】:

  • remote: true 只是在表单中添加一个data-remote 属性。 jQuery Rails 使用data-remote 属性向表单(和链接)添加了一个ajax 事件处理程序。正如Зелёный 指出的那样——这不是魔术。如果你使用 React,它不是你想要使用的东西,因为它只会妨碍你。

标签: javascript ruby-on-rails ruby reactjs react-rails


【解决方案1】:

您需要使用rails-ujs 库。

import Rails from 'rails-ujs'; // for webpack

要提交表单,请运行下一个命令:

Rails.fire(document.getElementByID('FORM-ID'), 'submit');

【讨论】: