Ввод на веб-странице React не отображается

Я следую учебнику Coding with kevins SQL, Node, Express и React JS на YouTube. https://thewikihow.com/video_rK6oTTbVbcY

Я нахожусь в учебнике, где я должен вводить данные в текстовое поле веб-страницы, и после нажатия кнопки «Отправить» данные будут отображаться в нижней части веб-страницы.

Всякий раз, когда я пытаюсь ввести имя и фамилию в соответствующее текстовое поле, оно не отображается внизу страницы.

вот мой код из моего App.js:

import './App.css';

импортировать React, {useState} из 'реагировать';

function App() {
       const [employee, setEmployee] = useState({EmployeeID: 0,  Firstname: '', Lastname: '', Age: 0, Gender: ''});
  const [returnedData, setReturnedData] = useState([]);
  const setInput = (e) => {
    const {name, value} = e.target;
    console.info(value);
  
    if (name === 'EmployeeID' || name === 'Age') {
      setEmployee(prevState => ({...prevState,
        [name]: parseInt(name)
      }) );
      return;
    }
  
    setEmployee(prevState => ({
      ...prevState,
      [name]: value
    }));
  }
  const fetchData = async () => {
   
    console.info(employee);
    
    const newData = await fetch('/api', {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
      },
      body: JSON.stringify({
        name: employee.Firstname
      })
    })
    .then(res => res.json())
    console.info(newData[0]); 
  }

  return (
    <div className = "App">
      <input 
        type = "number" 
        name = "EmployeeID" 
        placeholder = "EmployeeID"
        onChange = {setInput}>
      </input>
      <input 
        name = "Firstname" 
        placeholder = "Firstname" 
        onChange = {setInput}>
      </input>
      <input 
          name = "Lastname" 
          placeholder = "Lastname" 
          onChange = {setInput}>
      </input>
      <input 
        type = "number" 
        name = "Age" 
        placeholder = "Age"
        onChange = {setInput}>
      </input>
      <input 
          name = "Gender" 
          placeholder = "Gender" 
          onChange = {setInput}>
      </input>
      <button onClick = {()=> fetchData()}>Clicky</button>
      <button onClick = {()=> fetchData()}>Create</button>
      <p>EmployeeID: {returnedData.EmployeeID}</p>
      <p>Firstname: {returnedData.Firstname}</p>
      <p>Lastname: {returnedData.Lastname}</p>
      <p>Age: {returnedData.Age}</p>
      <p>Gender: {returnedData.Gender}</p>
      {returnedData}
      {returnedData.name}
    </div>
  );
}

export default App;`enter code here`

В соответствии с руководством по вопросам, пожалуйста, не публикуйте изображения кода, данных, сообщений об ошибках и т. д. - скопируйте или введите текст в вопрос. Пожалуйста, зарезервируйте использование изображений для диаграмм или демонстрации ошибок рендеринга, вещей, которые невозможно точно описать с помощью текста.

Dale K 06.05.2022 00:32

И действительно ли проблема связана с SQL Server? Скорее всего проблема в коде...

Dale K 06.05.2022 00:33
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
2
32
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В нижней части страницы вы пытаетесь отобразить содержимое returnedData, тогда как setReturnedData никогда не вызывается внутри кода. вы просто звоните setInput, чтобы измениться employee.

returnedData все еще пустой массив [].

Я считаю, что вы хотите вызвать setReturnedData внутри fetchData для обновления на основе вашего вызова API. Сделайте это, и он, вероятно, отобразит данные :)

Небольшой совет для StackOverflow: вместо того, чтобы делиться снимками экрана, рассмотрите возможность использования КодПесочница для создания редактируемого проекта с вашим кодом, который может быть легче читать и предоставлять вам решение.

Каков правильный синтаксис для вызова setReturnedData? Я новичок, чтобы реагировать, поэтому я просто не уверен, как реализовать это в моем коде.

Katrina 06.05.2022 01:45

setReturnedData — это функция для установки состояния returnData, может быть вызвана так, например, в вашей функции fetchData: setReturnedData(res.json())

Tin Stribor Sohn 06.05.2022 01:50
Вот хороший урок на эту тему
Tin Stribor Sohn 06.05.2022 01:57

Итак, как только я поместил setReturnedData() внутрь fetchData, какой синтаксис я поместил в функцию setReturnedData(), чтобы отобразить пару ключ-значение на странице внешнего интерфейса? Я могу извлекать данные из базы данных и отображать результат в строке консоли. Некоторые из предыдущих, которые я пробовал, это setReturnedData(newData.result) и setReturnedData(newData[0])

Katrina 06.05.2022 02:27

это зависит от содержимого ваших новых данных, как выглядит результат новых данных? console.info(newData) , содержимое returnData должно быть чем-то вроде {EmployeeID: 0, Firstname: '', Lastname: '', Age: 0, Gender: ''} , чтобы правильно отображаться во внешнем интерфейсе. Итак, посмотрите, где вы найдете этот тип объекта в результате выборки новых данных.

Tin Stribor Sohn 06.05.2022 02:55

Другие вопросы по теме