我正在 React 中工作,目前收到错误“预期在箭头函数数组回调返回的末尾返回一个值”。我搜索了其他问题,但似乎找不到与 min 匹配的问题(除非我完全失明)。我有以下代码。
const self = this;
const relevantCompanyMeasures = this.props.companyMeasures
.filter(companyMeasure => {
for(const measure of self.state.measures) {
if(measure.id === companyMeasure.measure_type_id) return true;
else return false;
}
});Run Code Online (Sandbox Code Playgroud)
该代码循环遍历两个对象数组,寻找两者之间的匹配项。如果我只为匹配返回 true,我就会理解这个错误。但是,如果没有匹配项,我会返回 false。因此,我很难想象最终会出现箭头函数末尾没有返回值的情况。
试图了解React中setState()的工作原理。我的问题是这个。
如果我有其中一行是setState()的函数,那么在重新渲染之前,该行之后的代码行是否仍会运行?例如,在下面的代码中,
foo(value) {
this.setState({stateValue: value});
console.log("Stuff after setState");
}
Run Code Online (Sandbox Code Playgroud)
在该代码中,console.log是否保证可以运行?它在我测试时运行,但是我不确定这是否仅是因为React还没有时间重新渲染。我可以期望this.setState()之后的代码运行吗?
我正在阅读 Bjarne Stroustrup 所著的《C++ 编程语言》一书,第二章中的一些代码让我感到困惑。为了这篇文章,我缩短了书中的代码。
以下代码会导致编译错误“使用了 C4700 未初始化的局部变量‘向量’”。
struct Vector
{
int size;
double* elements;
};
void vector_init(Vector vector, int size)
{
vector.elements = new double[size];
vector.size = size;
}
int main()
{
Vector vector;
vector_init(vector, 3);
}
Run Code Online (Sandbox Code Playgroud)
现在这对我来说是有道理的。对我来说没有意义的是,如果我将 Vector 结构作为引用传递,错误就会消失。
struct Vector
{
int size;
double* elements;
};
void vector_init(Vector& vector, int size)
{
vector.elements = new double[size];
vector.size = size;
}
int main()
{
Vector vector;
vector_init(vector, 3);
}
Run Code Online (Sandbox Code Playgroud)
使用此代码作为起点,我已经能够填充向量结构并打印出其值。我无法理解为什么通过引用传递它意味着我现在不再需要初始化结构。