javascript - 单击“关闭”时无法删除列表项?

标签 javascript reactjs

代码没有错误,请问问题出在哪里? 我无法关闭列表项并更改组件的状态!
我应该怎么做才能使我的解雇发挥作用?是否有如上所述更好的方法?

这是代码:

import React, { Component } from 'react';
import './App.css';

const list = [
  {
    title: 'React',
    url: 'https://facebook.github.io/react/',
    author: 'Jordan Walke',
    num_comments: 3,
    points: 4,
    objectID: 0,
  },
  {
    title: 'facebook github',
    url: 'https://facebook.github.io/',
    author: 'Janardhan',
    num_comments: 3,
    points: 6,
    objectID: 1,
  },
]
class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      list
    }
    this.onDismiss = this.onDismiss.bind(this);
  }
  onDismiss(id) {
    const isNotID = item => item.objectID !== id;
    const updatedList = this.state.list.filter(isNotID)
    this.setState({ list: updatedList })
    console.log("dismissed??")
  }

  render() {
    return (
      <div className="App">
        {list.map(item =>
          <div key={item.objectID}>
            <span>
              <a href={item.url}>{item.title}</a>
            </span>
            <span>{item.author}</span>
            <span>{item.points}</span>
            <span>{item.num_comments}</span>
            <button onClick={() => this.onDismiss(item.objectID)} >Dismiss</button>
          </div>
        )}
      </div>
    );
  }
}

export default App;

最佳答案

问题来自这里:

const isNotID = item => item.objectId !== id;

它应该是objectID而不是objectId

编辑

并且在render方法中,应该是this.state.list.map

关于javascript - 单击“关闭”时无法删除列表项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54459112/

相关文章:

javascript - 在 Javascript 中将 JSON 转换为 HTML

javascript - 在隔离作用域指令中,在作用域上定义变量和在 Controller 上定义变量之间有什么区别吗?

javascript - React JS map 卡片图像

javascript - 如何在 react 中使用外部对象?

javascript - 树状结构,显示结构中单击元素的文本

javascript - 找到导致输入模糊的元素的 id

javascript - 将 AWS Chime 集成到 Java 应用程序中

javascript - 将 CSS 文件的内容作为文本导入和读取 (React/webpack)

reactjs - 如何使表头工具提示与启用的排序一起使用?

javascript - 在 react 中过滤数据?