javascript - 从状态中删除值(设置新状态)

标签 javascript reactjs

我正在尝试从我的状态中删除一个值。

我正在使用.filter,因为我相信这是最简单的方法。我还想实现一个 undo 函数(但这超出了这个问题的范围)。

我已将此代码放入沙箱中 https://codesandbox.io/s/yrwo2PZ2R

class App extends React.Component {
  constructor(props) {
    super(props);
    this.state = {
      movies: x.movies,
    };
  }
remove = (e) => {
  e.preventDefault();
  console.log('remove movie.id:', e.target.value)
  const index = e.target.value
  this.setState({
    movies: this.state.movies.filter((_, e) => e.id !== index)
  });
}
  render() {
    return (
      <div>
        {this.state.movies.map(e =>
          <div key={e.id}>
            <li>{e.name}  {e.id}</li>
            <button value={e.id} onClick={this.remove}>remove</button>
          </div>,
        )}
      </div>
    );
  }
}

最佳答案

两个问题。

首先,您从事件目标值获取的索引是一个字符串,但您正在与一个数字进行比较。更改索引声明如下:

const index = Number(e.target.value);

其次,你的过滤器有点关闭。这将起作用:

this.state.movies.filter(movie => movie.id !== index)

关于javascript - 从状态中删除值(设置新状态),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44563503/

相关文章:

javascript - 对 JSX.Element 与 React.Component 之间的差异以及何时将它们与 React-dom-router 一起使用感到困惑

javascript - 为什么发送到 Node/Express 服务器的 XMLHttpRequest 中的对象是空的?

javascript - 仅在堆栈中的最后一个执行回调

javascript - 未捕获的类型错误 : Cannot read property 'text' of undefined for getting selected value in java script

javascript - 如何隐藏损坏的 ASP.NET 图像控件

seo - SEO 如何影响 ReactJS 页面变化

javascript - 如何在coffeescript中将两个jquery帖子合并为一个?

javascript - react 箭头函数未定义定义

reactjs - React-Redux : mapDispatchToProps methods not found

javascript - 将带有 "static get defaultProps()"的 React 类转换为功能组件