此功能与Postman一起使用时,为什么不从数据库中删除测验?
deleteQuiz = () => {
const quiz = this.state.quizData._id
axios.delete(`http://localhost:5000/${quiz}`)
.then(res => {
console.log(res.data)
})
具有onClick:
<button onClick={() => this.deleteQuiz(this.state.quizData._id)}>Delete Quiz </button>
类似地,这不起作用:
topicSearch = topic => {
axios.get(`http://localhost:5000/search/${topic}`)
.then(res => {
const data = res.data;
this.setState({
quizSelection: data
})
})
}
}
在子组件中带有onClick,并传入topicSearch
onClick={this.props.topicSearch}
但是当在onChangeHandler内调用topicSearch()并传递e.target.value时,确实可以工作
handleTopicChange = eventValue => {
this.topicSearch(eventValue)
this.setState({
topic: topic
})
}
从其他示例看来,将状态传递到函数中是可以接受的-这是我显然缺少的东西吗?
答案 0 :(得分:0)
您在这里没有得到任何参数:
deleteQuiz = () => {
const quiz = this.state.quizData._id;
axios.delete(`http://localhost:5000/${quiz}`).then(res => {
console.log(res.data);
});
};
因此使用这样的参数:
deleteQuiz = quiz => {
axios.delete(`http://localhost:5000/${quiz}`).then(res => {
console.log(res.data);
});
};
这将使用传递的参数,而不是来自状态的参数。
<button onClick={() => this.deleteQuiz(this.state.quizData._id)}> Delete Quiz </button>