我在以下代码中真的很挣扎。我使用' onClick'来调用函数。这个函数已经在组件的构造函数中受到限制,但由于某种原因,这个函数的功能很多。在事件处理程序中返回' undefined'。
foreach(array_count_values($array) as $value => $count){
if($count > 1){
echo "hi " . $value . "*";
}else{
echo "count = 1 " . $value . "*";
}
}
onClick调用以下函数。
render() {
if (bla) {
(...)
return (
<div>Loading</div>
)
} else: {
return (
<div>
<a onClick={this.activeorArchive}><h4>Archive</h4></a>
</div>
}}
我不清楚我在这里做错了什么。我在过去有一个类似的问题,其中return语句是函数本身的一部分(通过将其转换为箭头函数来解决)。但肯定有一种方法可以在if / else语句中保留状态吗?
根据要求,构造函数:
activeorArchive() {
if (this.state.active === true) {
this.setState((prevState, props) => ({
assessments_list_url: prevState.assessment_list_url + 'archived=false' + "/"
}))
console.log(self.state.active)
} else {
this.setState((prevState, props) => ({
assessments_list_url: prevState.assessment_list_url + 'archived=true' + "/"
}))
console.log(self.state.active)
}
}
答案 0 :(得分:2)
尝试这种方法:
activeorArchive = () => {
const newListURL = `/api/assessments/archived=${this.state.active ? 'false' : 'true'}`;
this.setState({assessments_list_url: newListURL});
};
请告诉我,如果它适合你:)