首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >基于字符串的调用对象

基于字符串的调用对象
EN

Stack Overflow用户
提问于 2018-01-23 12:46:32
回答 3查看 37关注 0票数 0

我试图通过react从我的节点后端调用一个对象,但是我试图基于一个字符串来调用对象。因此,如果字符串是'Cat',我希望访问Cat对象和它下面的任何其他键/值。

代码的示例如下:

代码语言:javascript
复制
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文件(名称、年龄、食草动物等)都有关键值:

代码语言:javascript
复制
app.get('/animals', (req, res) => {
  res.send({ Cat, Dog, Cougar, Wolf, etc.... });
});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-01-23 12:50:49

当您想要访问对象中的动态键时,需要使用括号语法。

代码语言:javascript
复制
catsName: res[catName].name

查看属性访问器的文档

票数 1
EN

Stack Overflow用户

发布于 2018-01-23 12:50:35

你需要数组表示法。

代码语言:javascript
复制
res[catName].name
票数 1
EN

Stack Overflow用户

发布于 2018-01-23 12:50:38

res.catName.name转换为res[catName].name

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48402136

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档