我试图通过反应从我的节点后端调用一个对象,但我试图基于一个字符串这样做。因此,如果字符串是“Cat'”,我想访问Cat
对象及其下的任何其他键/值。
代码的示例:
componentDidMount() {
let catName = 'Cat' //this string is actually passed in
this.callApi()
.then(res => this.setState({ catsName: res.catName.name }))
//catsName: res.Cat.name works
.catch(err => console.log(err));
}
callApi = async () => {
//lets say this example route has all animals in the world as objects
const response = await fetch('/animals');
const body = await response.json();
if (response.status !== 200) throw Error(body.message);
return body;
};
我知道它不起作用,因为它是一个字符串,但试图转换字符串或对象也没有工作。我的节点知识,任何建议或线索都受到限制?或者这是不可能的,我称之为错?提前谢谢。
如果有帮助,此示例的节点后端的示例。所有动物的api文件中都有关键值(姓名,年龄,食草动物等):
app.get('/animals', (req, res) => {
res.send({ Cat, Dog, Cougar, Wolf, etc.... });
});
答案 0 :(得分:1)
你需要数组表示法。
res[catName].name
答案 1 :(得分:1)
将res.catName.name
转换为res[catName].name
答案 2 :(得分:1)