在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