reactjs 使用useState更改get input:text并使用onclick打印新的< p>

7hiiyaii  于 2022-12-03  发布在  React
关注(0)|答案(1)|浏览(126)

我是一个初学者在React,并试图学习useState。我有困难,如何获得输入的值,并保存该值,并打印它的按钮点击

const HomePage = () => {
  const [state, setState] = useState({
    Name: "",
    surName: "",
  });

  const handleChange = (e) => {
    setState({
      ...state,
      [e.target.name]: e.target.value,
    });
  };
  const RenderNameOC = () => {
    return (
        <p>
          Halo {Name} {surName}
        </p>
    
    );
  };

  return (
    <DivContainer>
      <ContainerTitle>
        <p>Exercise 2 - Form</p>
      </ContainerTitle>
      <InputContainer>
        <InputArea>
          <label>Name: </label>
          <input type="text" value={state.Name} onChange={handleChange} />
        </InputArea>
        <InputArea>
          <label>Surname: </label>
          <input type="text" value={state.surName} onChange={handleChange} />
        </InputArea>
        <SubmitButton onClick={RenderNameOC}>Submit</SubmitButton>
      </InputContainer>
    </DivContainer>
  );
};

export default HomePage;

这是我现在的代码,它给我的错误是“名称”和“姓氏"没有定义。
我的预期结果是,将有2个输入文本框与姓名。当按钮被点击,它会添加一个新的下面。

4zcjmb1e

4zcjmb1e1#

这里应该是state.Namestate.surName

<p>
      Halo {state.Name} {state.surName}
</p>

并在两个输入中添加name

<input
    type="text"
    name="Name"
    value={state.Name}
    onChange={handleChange}
  />

  <label>Surname: </label>
  <input
    type="text"
    name="surName"
    value={state.surName}
    onChange={handleChange}
  />

但是没有必要返回RenderNameOC,因为onClick是一个void函数。
Demo

相关问题