我想知道你是否可以帮我解决这个问题.我想从Redux状态删除一个项目.我已将用户点击的项目的ID传递action.data到reducer中.
我想知道如何action.data在Redux状态下匹配其中一个ID,然后从阵列中删除该对象?我还想知道在删除单个对象后设置新状态的最佳方法吗?
请参阅以下代码:
export const commentList = (state, action) => {
switch (action.type) {
case 'ADD_COMMENT':
let newComment = { comment: action.data, id: +new Date };
return state.concat([newComment]);
case 'DELETE_COMMENT':
let commentId = action.data;
default:
return state || [];
}
}
Run Code Online (Sandbox Code Playgroud) 我对React还是比较陌生,想知道是否可以看一下这个问题。我正在对click事件进行API的ajax调用,并将结果存储在'SearchButtons'组件的状态中。
然后将状态通过道具传递到子组件中。但是,子组件(SearchForm)中的道具等于父组件上的先前状态,并且当用户单击其中一个按钮时不会更新。
我想知道是否有解决办法,也许在将道具发送到子组件之前更新组件?
import React from 'react';
import SearchForm from './SearchForm'
class SearchButtons extends React.Component {
constructor(){
super();
this.state = {
data: {}
}
}
update(event){
$.ajax({
url: 'http://example/api/' + event.target.value,
dataType: 'json',
cache: false,
success: function(data) {
this.setState({ data: data })
}.bind(this)
});
}
render() {
return (
<div>
<button type="button" value="people" onClick={this.update.bind(this)} className="btn btn-primary">People</button>
<button type="button" value="car" onClick={this.update.bind(this)} className="btn btn-primary">Car</button>
<button type="button" value="planet" onClick={this.update.bind(this)} className="btn btn-primary">Planet</button>
<SearchForm data={this.state.data} />
</div>
)
}
}
export …Run Code Online (Sandbox Code Playgroud)