如何从React函数访问输入元素

史蒂文·泰格曼

我目前有一个根据当前用户拥有的“活动”数量自动生成的表单。每个活动都有一个名称和一个值。我的目标是将这些值提交给后端以更新它们。但是我不知道如何引用这些输入。我试图阅读有关使用“ ref”的信息,但它们以{current:null}返回

自动生成的列表(请使用占位符文本)

这是自动生成的列表(请使用占位符文本)

当我检查控制台时,这是从引用中找到的内容:

在此处输入图片说明

这是我的代码:

import React, { useEffect } from "react";
import { useDispatch, useStore } from "react-redux";
import { connect } from "react-redux";
import * as actions from "../store/actions/patientSide";

export function ActivityTemplates() {
  const dispatch = useDispatch();
  const store = useStore();
  const ref = React.createRef();

  useEffect(() => {
    // Update the document title using the browser API
    dispatch(actions.getTodaysActivityTemplates());
  }, []);
  
  const activities = store.getState().patientSide.todays_activities;

  const listedStuff = activities.map((activity) => (
    <div>
      {activity.activity_name}
      <label for="value"> Value: </label>
      <input
        type="number"
        id="value"
        defaultValue={activity.value}
        min="0"
        max="10"
      ></input>
    </div>
  ));
  
  const saveActivities = () => {
    var inputs = ref;

    console.log(inputs);
    // Insert code to run the call to the backend
  };

  return (
    <div>
      <h1> Activity Templates</h1>
      <form id="form" onSubmit={saveActivities()} ref={ref}>
        {listedStuff}
        <input type="submit" name="save" />
      </form>
    </div>
  );
}

export default ActivityTemplates;

我对React和JS还是很陌生,说实话我对自己的工作几乎一无所知,但是如果有人可以指出正确的方向,那真是太棒了!

编辑:睡在上面之后,我意识到我只是想强制对HTML做出反应。我相信我应该改用React Form Hook,并从头开始正确地做。

Aliasger Ujjainwala
  <form onSubmit={handleOnSubmit}>
        <label>User Name</label>
        <input type="text"  name="username" /><br/>
        <label>Password</label>
        <input type="password"  name="password" /><br/>
        <input type="submit" value="Submit" />
      </form>



 const handleOnSubmit = (event) => {
    const formData = new FormData(event.target);
    const formDetails = {};

    event.preventDefault();
    for (let entry of formData.entries()) {
      formDetails[entry[0]] = entry[1];
    };
    console.log("formDetails", formDetails);
  }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何访问被调用函数中的结构元素?

来自分类Dev

React功能组件,如何从元素dragStart / dragEnd回调中访问外部函数变量

来自分类Dev

在react-select中访问内部输入元素

来自分类Dev

如何访问React中的某个映射元素?

来自分类Dev

如何从React类访问自动绑定的函数?

来自分类Dev

如何将Ember输入作为jQuery元素访问?

来自分类Dev

如何通过非标准属性访问输入元素?

来自分类Dev

如何在React应用程序中this.refs不可用的函数中访问DOM元素?

来自分类Dev

如何从C#访问以指针作为输入参数的C ++函数

来自分类Dev

如何从Javascript函数访问在HTML隐藏输入中声明的数组?

来自分类Dev

如何按名称访问redshift SQL函数中的输入变量

来自分类Dev

shared_ptr <T>如何访问T的元素或函数

来自分类Dev

如何访问jQuery过滤器函数中的元素?

来自分类Dev

如何访问被调用函数的当前元素属性名称

来自分类Dev

如何访问在R中的列表中存储为元素的函数?

来自分类Dev

Vanilla JavaScript:如何通过函数参数访问DOM元素属性?

来自分类Dev

如何访问jQuery过滤器函数中的元素?

来自分类Dev

如何访问javascript函数中的表单元素?

来自分类Dev

如何访问C ++函数,该函数将指针作为来自C#的输入参数

来自分类Dev

如何访问set元素的元素?

来自分类Dev

如何从需要访问状态的React Hooks返回函数?

来自分类Dev

如何输入嵌套元素?

来自分类Dev

在React中访问输入值

来自分类Dev

如何从CMap访问元素?

来自分类Dev

如何访问数据元素

来自分类Dev

如何从CMap访问元素?

来自分类Dev

如何访问jsonarray元素

来自分类Dev

如何从 ItemCollection 访问元素?

来自分类Dev

如何访问元素的cssText?

Related 相关文章

热门标签

归档