我希望你能幫上忙。React JS - 這個函數如何工作來刪除JSON數據?
我不記得我在deleteHandler函數中得到的代碼片段。它會從JSON數組中刪除相關的listdata項目並按預期進行重新呈現。我只是不明白它在做什麼。它具體的React語法?我不知道它是不是最基本的東西?
我知道state.listdata.splice(id,1);線獲取當前的JSON對象,但箭頭函數做什麼?什麼是返回?我很困惑。
任何幫助,非常感謝。
var AppFront = React.createClass({
getInitialState:function(){
return{
listdata: [
{"id":1,"name":"Push Repo","description":"Job No 8790","priority":"Important"},
{"id":2,"name":"Second Note","description":"Job No 823790","priority":"Important"}
]
}
},
deleteHandler: function(e,id){
this.setState(state => {
state.listdata.splice(id, 1);
return {listdata: state.listdata};
});
},
render: function(){
var listDataDOM = this.state.listdata.map((item,index) => {return (<li key={item.id}>
{item.name}
<button onClick={()=>this.deleteHandler(item.id)}>delete</button>
</li>)});
return(
<div>
<h1>To-do List</h1>
<ul>
{listDataDOM}
</ul>
</div>
);
}
});
ReactDOM.render(<AppFront />,document.getElementById("container"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/react/15.1.0/react-dom.min.js"></script>
這很好用。謝謝你。我可以麻煩你解釋一下this.state.listdata.findIndex(e => e.id == id)的語法嗎? findIndex和=>在這種情況下做什麼? –
''findIndex'''在回調函數返回true的情況下返回元素的索引。它和'''array.findIndex(function(element){return element.id == id})''一樣。當''element.id == id'''返回true時,'''findIndex'''返回元素的索引 –