gpt4 book ai didi

javascript - 状态更改后,React 不会重新渲染虚拟 DOM

转载 作者:行者123 更新时间:2023-11-29 17:42:36 25 4
gpt4 key购买 nike

我有一个从 RESTful API 加载类(class)的组件。加载类(class)后,状态发生变化,组件应使用加载的数据呈现 CourseCard 组件。

问题是当 loadCourses() 方法改变组件的状态时,没有显示 CourseCard

这是组件的代码:

class Courses extends Component {

constructor() {
super();

this.state = {
courses: []
};
}

componentDidMount() {
this.loadCourses(null);
}

render() {
return (
<div>
<CourseCategoriesBar loadCourses={this.loadCourses.bind(this)} />

<div style={{
paddingBottom: "120px",
marginBottom: "30px",
}}>
<div className="container">
<div className="row">

{this.state.courses.map((course, i) => {
return (
<div className="col-lg-3 col-md-6 col-sm-12" key={i}>
<CourseCard type="e" key={i}/>
</div>
);
})}

</div>
</div>
</div>
</div>
);
}

loadCourses(id) {
if (!id) id = ""
let url = "http://localhost:8000/api/courses/category/" + id;

fetch(url)
.then((response) => response.json())
.then((response) => this.setState(response));
}
}

最佳答案

我相信你不是在更新状态,像这样更新状态

fetch(url)
.then((response) => response.json())
.then((response) => this.setState({courses : response.data});

关于javascript - 状态更改后,React 不会重新渲染虚拟 DOM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52167051/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com