javascript - reactjs 语法错误 : url is readonly

标签 javascript reactjs react-router

我在 react 中遇到这个问题我有这个功能但它的 react 格式不正确

check(img) {
        console.log(img,typeof img)
        const url="";
        const arrN = ["15","16","35","36","37","38","39","40","n15","n16","n35","n36","n37","n38","n39","n40"];
        for (var i = 0; i < arrN.length; i++) {
            if (img === arrN[i]) {
                 url = "/blah/allIcons/blah"+img+"_en.png";
            }else{
                 url = "/blah/allIcons/blah"+img+".png";
            }
        }
        return url;
    }

它给我这个错误

Module build failed: SyntaxError: "url" is read-only

我该怎么做?

最佳答案

如果您更改 url 变量,则不应将其声明为常量。使用 let:

check(img) {
  const arrN = ["15", "16", "35", "36", "37", "38", "39", "40", "n15", "n16", "n35", "n36", "n37", "n38", "n39", "n40"];
  let url = "";

  for (var i = 0; i < arrN.length; i++) {
    if (img === arrN[i]) {
      url = "/blah/allIcons/blah" + img + "_en.png";
    } else {
      url = "/blah/allIcons/blah" + img + ".png";
    }
  }
  return url;
}

但您似乎并不需要它,因为整个 for 循环检查似乎效率低下。可以这样优化:

check(img) {
  const arrN = ["15", "16", "35", "36", "37", "38", "39", "40", "n15", "n16", "n35", "n36", "n37", "n38", "n39", "n40"];

  if (arrN.indexOf(img) > -1) { // or if (arrN.includes(img)) {...}
    return "/blah/allIcons/blah" + img + "_en.png";
  }

  return "/blah/allIcons/blah" + img + ".png";
}

关于javascript - reactjs 语法错误 : url is readonly,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42136788/

相关文章:

javascript - 如何从 React Native 一次性导入所有组件?

javascript - 更改 reactjs 组件状态中字段的值(使用从 firebase 获取的数据)

javascript - 如何仅在最后一个 XHR 完成后更新/重新渲染组件?

javascript - 无法在无状态组件中的现有状态转换期间更新

javascript - 根据条件 angularjs 动态添加 colspan 值

javascript - 在 while 循环 D3 中更新参数

javascript - 如何使用 Promise 和 try catch block

Javascript 不增加变量

通过调用 browserHistory 测试异步 redux 操作

reactjs - React-router 2.0 browserHistory 刷新时不起作用