在ReactJS中删除项目

我是React的新手,制作了一个可以保存搜索的应用程序。这将提取JSON,但当前正在从静态数组中提取data。我无法从搜索列表中删除搜索。

这是jsbin:http://jsbin.com/nobiqi/edit?js,输出

这是我的删除按钮元素:

var DeleteSearch = React.createClass({

render: function() {

return (

<button onClick="this.props.deleteSearchItem" value={index}><i className="fa fa-times"></i>

</button>

);

}

});

和我的功能

  deleteSearchItem: function(e) {

var searchItemIndex = parseInt(e.target.value, 10);

console.log('remove task: %d', searchItemIndex);

this.setState(state => {

state.data.splice(searchItemIndex, 1);

return { data: state.data };

});

}

我尝试了以下教程,但不确定从这里开始。如何删除搜索项目?

回答:

我猜,您是否正在寻找类似的东西?

class Example extends React.Component {

constructor(){

this.state = {

data: [

{id:1, name: 'Hello'},

{id:2, name: 'World'},

{id:3, name: 'How'},

{id:4, name: 'Are'},

{id:5, name: 'You'},

{id:6, name: '?'}

]

}

}

// shorter & readable

delete(item){

const data = this.state.data.filter(i => i.id !== item.id)

this.setState({data})

}

// or this way, it works as well

//delete(item){

// const newState = this.state.data.slice();

// if (newState.indexOf(item) > -1) {

// newState.splice(newState.indexOf(item), 1);

// this.setState({data: newState})

// }

//}

render(){

const listItem = this.state.data.map((item)=>{

return <div key={item.id}>

<span>{item.name}</span> <button onClick={this.delete.bind(this, item)}>Delete</button>

</div>

})

return <div>

{listItem}

</div>

}

}

React.render(<Example />, document.getElementById('container'));

在此示例中,请注意我如何绑定delete方法并在那里传递新参数。

希望对您有帮助。

谢谢

以上是 在ReactJS中删除项目 的全部内容, 来源链接: utcz.com/qa/413973.html

回到顶部