我们说我有这段代码:
if (input.length >= 3) {
var filtered_school = _.filter(schools, function (school) {
return _.startsWith(school.label, input);
});
}
this.setState({ options: filtered_school })
我无法使用'让'因为它无法在范围之外看到所以我无法将filtered_school
分配给options
。
但我听说没有理由在ES6中使用var。
在这种情况下如何使用let?
答案 0 :(得分:4)
将它放在if
:
let filtered_school;
if (input.length >= 3) {
filtered_school = // ...
});
let
是块范围的,这意味着如果你在if
块中定义它,它就不会存在于它之外,因此你必须在这种情况下将其解压缩。
答案 1 :(得分:4)
您在要使用它的范围内声明变量,即在if
块之外。
let filtered_school;
if (input.length >= 3) {
filtered_school = _.filter(schools, function(school) {
return _.startsWith(school.label, input);
});
}
this.setState({
options: filtered_school
})
答案 2 :(得分:1)
let
在ES6中创建了块级范围,您可以在外面声明它并在filter
中分配它。
let filtered_school;
if (input.length >= 3) {
filtered_school = _.filter(schools, function (school) {
return _.startsWith(school.label, input);
});
}
this.setState({ options: filtered_school })
答案 3 :(得分:1)
let
是块范围的,因此如果let
位于{}
内或逻辑块中,则只能在那里访问它。要使其在示例之外可访问,请将其置于if
语句之外。
let filtered_school;
if (input.length >= 3) {
filtered_school = _.filter(schools, function (school) {
return _.startsWith(school.label, input);
});
}