Ошибка типа: authorField.map не является функцией - PullRequest
0 голосов
/ 08 апреля 2020

Я так растерялся. Я не знаю, почему появляется ошибка «не функция». Вот код:

  const blankAuthor = { name: "", email: "" };
  const [authorField, setAuthorField] = useState([{ ...blankAuthor }]);

authorField.map((data, index) => {
            console.log(data, index);
}

1 Ответ

0 голосов
/ 08 апреля 2020

В случае, если вы ищете динамические c входы. Это может помочь вам начать

function App() {
  const [authorFields, setAuthorFields] = React.useState([
                                            {
                                              name: "test1",
                                              email: "email1"
                                            },
                                            {
                                              name: "test2",
                                              email: "email2"
                                            }]);

  const changeValue = index => e => {
     let propertyName = e.target.name;
     let newArr = [...authorFields];
     newArr[index][propertyName] = e.target.value;
     setAuthorFields(newArr);
  };

  return (
      <React.Fragment>
        {authorFields.map((data, index) => (
          <li key={index}>
            <input
               type="text"
               name="name"
               value={data.name}
               onChange={changeValue(index)}
            />
            <input
               type="text"
               name="email"
               value={data.email}
               onChange={changeValue(index)}
            />
        </li>
      ))}
    </React.Fragment>
  );
}

 ReactDOM.render(
  <div>
    <App />
  </div>,
  document.querySelector("#app")
);
<script src="https://unpkg.com/react@16.7.0-alpha.0/umd/react.development.js"></script>
<script src="https://unpkg.com/react-dom@16.7.0-alpha.0/umd/react-dom.development.js"></script>

<div id="app"></div>
...