javascript - 如何选择不同的json文件进行循环?
问题描述
我是新来的反应。我编写了一个脚本来循环一个 json 文件(../a.json)以在屏幕上显示城市。在a.json里面,是英国的城市信息列表。
如:[“Avon”、“Bedfordshire”……“Tyrone”]
代码将循环这个 json 文件并在屏幕上显示每个城市。现在我想添加一个参数让人们选择显示哪个国家。我添加了另外 4 个 json 文件,
从“../b.json”导入 b;
从“../d.json”导入 d;
从“../e.json”导入 e;
从“../f.json”导入 f;
我也创建了枚举类型Locale,但不知道如何调整代码文件3中的代码。你能帮忙看看吗?
我可以在代码文件 3 中创建一个 Map,并且根据从 Home 传递的语言环境,我可以提供 json 文件。它有效吗?我应该如何调整代码?
Code file 1
Code file 3
解决方案
您可以执行类似以下代码的操作。在一个对象中添加所有本地人。然后选择更新localData的onChange。
import React from "react";
import ES from "../data/ES.json";
import IT from "../data/IT.json";
import UK from "../data/UK.json";
const locals = {
UK: UK,
ES: ES,
IT: IT
};
class App extends Component {
constructor() {
super();
this.state = {
index: 0,
selectedLocal: "UK",
localData: locals["UK"]
};
}
onChange = e => {
this.setState({
index: 0,
localData: locals[e.target.value],
selectedLocal: e.target.value
});
};
render() {
return (
<div>
<select value={this.state.selectedLocal} onChange={this.onChange}>
{Object.keys(locals).map(local => {
return <option value={local}>{local}</option>;
})}
</select>
<div className="hints-on-home-screen">
<div
style={{
fontSize: this.props.testFontSize
}}
>
{this.state.localData[this.state.index]}
</div>
</div>
</div>
);
}
}
推荐阅读
- ruby-on-rails - 如何从不同的控制器调用设计认证?
- apache-nifi - 动态更新现有 WorkFlow 时是否需要停止 NiFi?
- java - 如何在运行时显示/隐藏 JavaFX 应用程序 macOS 停靠图标?
- c# - 在 C# 中将两个 JSON 结构合二为一
- django - django 如何使用属性创建列条目
- macos - ssh 远程主机标识已更改,无法修改 ssh 密钥
- java - 从改造 Json 到 Gson Android Kotlin/Java 的动态响应
- javascript - 向 React.Js 添加点击事件
- c# - 无法验证来自 web api 2.0 的返回值
- c# - 在白名单密钥系统上需要帮助