useState 接收输入数据和 post 到控制台

useState to receive input data and post to console

我还是 React 的大三学生,我正在尝试检测来自前端的输入并使用 useState 收集输入数据并通过控制台 post。我遵循了 React 自己的教程,但我做对了。这可能是我忘记的小事,但我已经坚持了好几天了。请帮忙



function Cards2() {

  const [input, setInput] = useState();
  console.log(input);

  return (
    <div id="cards" style={{width: 'auto', margin: '10px'}}>
    <div className="card-header" id="card-header" style={{backgroundColor: 'dimgray', color: 'white'}}>
      <h5>Header</h5>
    </div>
    <div className="card-body" id="card-body" style={{backgroundColor: 'lightgrey'}}>
      <blockquote className="blockquote mb-0">
        <p>Enter Name:</p>

                <input onChange={() => setInput(input)} type="email" className="form-control" id="exampleInputEmail1" aria-describedby="emailHelp"/> 

                <button type="submit" className="btn btn-primary" style={{marginTop: '7px'}}> Submit </button>

        <footer className="blockquote-footer">
          Someone famous in <cite title="Source Title">Source Title</cite>
        </footer>
      </blockquote>
    </div>
  </div>
  );
}
export default Cards2;

您需要使用 useEffect 来跟踪对输入值(或任何状态值)的任何更改。下面的link也解释了useEffect的工作原理,以及如何配合输入使用。 https://daveceddia.com/useeffect-hook-examples/

import React, { useState, useEffect } from 'react';

function Cards2() {

  const [input, setInput] = useState();

  useEffect(() => {
    console.log(input);
  }, [input]);

  return (
    // your code here
  );
}

export default Cards2;

您在 Input 中的 onChange 处理程序需要像这样:

<input onChange={(event) => setInput(event.target.value)} type="email" className="form-control" id="exampleInputEmail1" aria-describedby="emailHelp"/>

您可以按照上一个答案中的建议使用 useEffect,但这并不重要。