React函数中使用大括号无法替换URL的id参数,如何解决?
解决URL中动态插入id变量的问题
你遇到的问题核心在于:普通字符串里的{id}只是普通文本,JavaScript不会自动把它解析成变量占位符,所以没法替换成实际传入的id数值。这里给你两种常用的解决方法,都能生成你想要的目标URL:
方法1:使用ES6模板字符串(推荐)
模板字符串用反引号()包裹,变量通过${变量名}`的语法插入,写法简洁直观,是现在最常用的动态字符串拼接方式:
submitRating(rate, id) { this.setState({ rating: rate }); console.log(this.state.rating); console.log(id); // 改用模板字符串,用${id}插入变量 const url = `https://oversight-ws.herokuapp.com/api/politicians/${id}/rating`; console.log(url); // 现在会输出:https://oversight-ws.herokuapp.com/api/politicians/3499583/rating return; }
方法2:传统字符串拼接
如果你的运行环境不支持ES6语法,也可以用加号(+)直接拼接字符串:
submitRating(rate, id) { this.setState({ rating: rate }); console.log(this.state.rating); console.log(id); const url = "https://oversight-ws.herokuapp.com/api/politicians/" + id + "/rating"; console.log(url); // 同样能得到包含具体id的目标URL return; }
两种方法都能解决你的问题,优先推荐模板字符串,尤其是当需要插入多个变量时,它的可读性会比字符串拼接好很多。
内容的提问来源于stack exchange,提问作者Prince Abalogu
相关产品推荐
相关产品推荐

