javascript - 在没有 POST 的情况下处理 Remix.run 中的操作

标签 javascript node.js reactjs remix.run

我阅读了关于 Action 的 Remix 文档,我可以找到的关于 Action 的大部分信息是它使用带有按钮提交的表单 POST 来触发 Action

export default function Game() {
    const counter = useLoaderData();

    return (
        <>
            <div>{counter}</div>
            <div>
                <Form method="post">
                    <button type="submit">click</button>
                </Form>
            </div>
        </>
    );
}
但是,对于其他诸如...拖放组件之类的操作,将如何触发该操作,放置后应在何处触发操作发布

最佳答案

useSubmit应该做你想做的。
这是 docs 中的一个示例

import { useSubmit, useTransition } from "remix";

export async function loader() {
  await getUserPreferences();
}

export async function action({ request }) {
  await updatePreferences(await request.formData());
  return redirect("/prefs");
}

function UserPreferences() {
  const submit = useSubmit();
  const transition = useTransition();

  function handleChange(event) {
    submit(event.currentTarget, { replace: true });
  }

  return (
    <Form method="post" onChange={handleChange}>
      <label>
        <input type="checkbox" name="darkMode" value="on" />{" "}
        Dark Mode
      </label>
      {transition.state === "submitting" ? (
        <p>Saving...</p>
      ) : null}
    </Form>
  );
}

关于javascript - 在没有 POST 的情况下处理 Remix.run 中的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71005715/

相关文章:

javascript - nodejs mongodb驱动的同步函数调用

node.js - Express.js 带特殊字符的参数 URL 编码

node.js - npm start 以 - fatal error : MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory 结束

git - 我应该在哪个分支中构建 docker 镜像?

javascript - 使用 Javascript 连接 MySQL 数据库测验(初学者)

javascript - 如何使我的 Logo JS 动画像网站上的图像 Logo 一样缩放?

node.js - 如何实现没有ID的React HTTP删除请求?

javascript - 每次 div 的值能被 5 整除时,使 div 转到下一列

javascript - 如何调用父主干同步方法

javascript - 意外的标识符 : jQuery