TypeError: this.setState.myItems не определен

Я почти уверен, что код правильный, но я все еще получаю сообщение об ошибке «Ошибка типа: this.setState.myItems не определено» когда я нажимаю кнопку удаления Я попытался удалить конкретный элемент, используя метод setState в filter() Пишет, что ошибка в строке 35: const filteredItems = this.setState.myItems.filter(myItem => {

там

    import React from "react";
    import PropTypes from "prop-types";
    import { returnStatement, isTemplateElement } from "@babel/types";
    import "./style.css";

    class App extends React.Component {
    constructor(props) {
    super(props);
    this.state = {
    myItems: ["Poco F1", "OnePlus 6", "MiA1", "S7 Edge"]
    };
      }

    addItem(e) {
e.preventDefault();
const { myItems } = this.state;
const newItem = this.newItem.value;
const exists = myItems.includes(newItem);

if (exists) {
  this.setState({
    message: "This Phone is already listed"
  });
} else {
  newItem !== "" &&
    this.setState({
      myItems: [...this.state.myItems, newItem]
    });
}

this.newForm.reset();
  }

    removeItem(item) {
const filteredItems = this.setState.myItems.filter(myItem => {
  return myItem !== item;
});

     this.setState({
        myItems: [...filteredItems]
      });
      }

       render() {
        const { myItems, message } = this.state;
        return (
        <div>
    <h1>
      <b>PHONE LIST</b>
    </h1>
    <form
      ref = {input => (this.newForm = input)}
      onSubmit = {e => this.addItem(e)}
    >
      <div className = "form-group">
        <label className = "sr-only" htmlFor = "newItemInput">
          {" "}
          ADD NEW PHONE
        </label>
        <input
          type = "text"
          ref = {input => (this.newItem = input)}
          placeholder = "Enter Phone Name"
          className = "form-control"
          id = "newItemInput"
        />
      </div>
      <button type = "submit">ADD</button>
    </form>
    <div className = "content">
      <table className = "table">
        <thead>
          <tr>
            <th>Number</th>
            <th>Phone Name</th>
            <th>add/remove</th>
          </tr>
        </thead>
        <tbody>
          {myItems.map(item => {
            return (
              <tr key = {item}>
                <td scope = "row">1</td>
                <td>{item}</td>
                <td>
                  <button
                    onClick = {e => this.removeItem(item)}
                    type = "button"
                  >
                    REMOVE
                  </button>
                </td>
              </tr>
            );
          })}
        </tbody>
         </table>
       </div>
          <ol />
         </div>
        );
         }
          }

      export default App;

Я хочу удалить конкретный элемент, используя метод setState в filter()

должно быть this.state.myItems вместо this.setState.myItems

Olivier Boissé 10.05.2019 18:44
setState — это функция. Вы, наверное, хотите state
stevendesu 10.05.2019 18:44
Поведение ключевого слова "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) для оценки ваших знаний,...
0
2
47
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

Изменить this.setState.myItems на this.state.myItems

Это полностью сработало, чувак. Я был глуп, чтобы фильтровать setState :joy: . Спасибо чувак

zuk0o 10.05.2019 18:53

this.state.myItems вместо this.setState.myItems :)

Это полностью сработало, чувак. Я был глуп, чтобы фильтровать setState. Спасибо чувак

zuk0o 10.05.2019 18:54

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