【发布时间】:2021-11-18 10:36:21
【问题描述】:
我有一个 React 组件。它加载一个本地 JSON 文件。在构造函数中,我想遍历本地 JSON 文件,找到与 URL 参数匹配的项目,并设置一些状态值。到目前为止,这是我的代码:
import React,{Component} from "react";
import topics from './topics.json';
class Tutorial extends Component {
constructor(props){
super(props);
topics.map((topic, index) => {
if(topic.url === this.props.match.params.url)
{
this.state = {
url: this.props.match.params.url,
name: topic.name
};
}
})
}
render() {
return (
<div className="Tutorial">
<div className="ca-nav-spacer w3-hide-small"></div>
{this.state.name}
{this.state.url}
</div>
);
}
}
export default Tutorial;
我不断收到此错误:Array.prototype.map() 需要箭头函数的返回值。
map 函数必须返回一个值吗?如果我没有返回值,我应该只使用 for 循环吗?我可以返回 JSON 块然后在地图之后设置状态吗?这样做的正确方法是什么?
编辑:将页面更改为主题
【问题讨论】:
-
是的,你会使用
forEach或其他东西来代替map,但我认为这个用例也不应该使用。更好的方法是使用find数组方法来获取匹配的topic,然后只设置一次状态。 -
你能把你的 JSON 的结构也发一下吗
-
除非你想产生一个新的数组,否则我不推荐使用 map 作为你的迭代器。另外,这里的
page变量是什么?我没有看到它在任何地方声明。 -
@DanZuzevich,你是对的。可能是
topic.page.url
标签: javascript reactjs json return map-function