【问题标题】:React: send data from Child component to Parent componentReact:将数据从子组件发送到父组件
【发布时间】:2020-09-28 21:23:55
【问题描述】:

这是一个反应初学者练习,所以我正在寻找最简单的解决方案。我目前正在学习 React,所以任何有用的 cmets 也将不胜感激。提前致谢!

这是练习:

在功能组件中,创建一个 div,其中包含 2 个输入和一个按钮。

每一个都应该是一个单独的子组件,都由一个名为 App 的父组件呈现。

您应该从输入中收集数据并使其在父组件中可用(使用函数可以解决此问题)。

输入 1 应该收集用户的电子邮件。 输入 2 应该收集用户的密码。

当按钮(也是一个单独的组件)被点击时,你应该提醒两个输入收集的数据。

您应该使用onChangeonClick 事件

我不太确定我必须对 Button 组件做什么。这是我到目前为止的练习,但我认为这是错误的?......

APP.JS

import React from 'react'
import Email from './components/Email'
import Password from './components/Password'

const App = () => {

  getData  = data => '${data}'

  return ( <div>
              <Email getData = {getData} />
              <Password getData = {getData} />
           </div>
    )
  }

export default App

EMAIL.JS

import React from 'react'

const App = () => {

    let email = '';

        return (
            <button onClick ={()=>props.getData({email})}></button>
         );
      }
export default Email;

PASSWORD.JS

import React from 'react'

const App = () => {

    let password = '';

        return (
            <button onClick ={()=>props.getData({password})}></button>
         );
      }
export default Password;

BUTTON.JS

【问题讨论】:

  • 你能创建一个沙盒链接吗?
  • 他们要求您做的是在密码和电子邮件组件上使用输入项的 onChange 处理程序。当发生变化时,将信息传递给您的 App 组件。这是为您的电子邮件和密码存储您的状态的地方。当您按下按钮 (onClick) 时,它将提醒您在主要组件中的状态
  • 你已经介绍过用于功能组件的 useState 钩子了吗?
  • 简要研究了状态挂钩,但我不确定是否可以将状态挂钩与功能组件一起使用
  • 我认为克里斯蒂娜到目前为止还没有使用过任何钩子。

标签: reactjs onclick components onchange


【解决方案1】:

我已经为此创建了一个解决方案和一个沙盒。

App.js

import React, { useState } from "react";
import Email from "./components/Email";
import Password from "./components/Password";
import Button from "./components/Button";
const App = () => {
  const [email, setEmail] = useState("");
  const [password, setpassword] = useState("");
  const [submit, setSubmit] = useState(false);
  if (submit) {
    console.log("email ", email);
    console.log("password ", password);
  }
  return (
    <div>
      <Email setEmail={setEmail} />
      <Password setpassword={setpassword} />
      <Button setSubmit={setSubmit} />
    </div>
  );
};

export default App;

Password.js

import React from "react";

const Password = ({ setpassword, submit }) => {
  return (
    <>
      Get Password
      <input type="password" onChange={e => setpassword(e.target.value)} />
    </>
  );
};
export default Password;

Email.js

import React from "react";

const Email = ({ setEmail }) => {
  return (
    <>
      Get Email
      <input type="text" onChange={e => setEmail(e.target.value)} />
    </>
  );
};
export default Email;

Button.js

import React from "react";

const Button = ({ setSubmit }) => {
  return (
    <button
      onClick={() => {
        setSubmit(true);
      }}
    >
      Submit
    </button>
  );
};
export default Button;

我强烈建议您在开始任何课程之前访问 reactjs.org 并查看文档。请不要复制粘贴。希望对你有帮助。

【讨论】:

猜你喜欢
  • 2019-09-07
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 2018-07-07
  • 2022-08-02
  • 2016-03-18
相关资源
最近更新 更多