我有一个无限循环,它在执行我想做的事情时,会获取我的更新数据,而不会一遍又一遍地处理它,而刷新速度却非常慢。
我已经阅读了一些东西,并尝试检查一下道具是否已更新,但无法正确显示...
我的无限循环...
componentWillReceiveProps(nextProps) {
whenGapiReady(() => {
const { Id } = this.props;
this.props.fetchFileUploads(Id)
});
}
试图将其更改为:
componentWillReceiveProps(nextProps){
if(nextProps.Id !== this.props.Id)
dispatch(this.props.fetchPlayerFileUploads(Id))
}
没有成功,它现在什么也不做。我已经错过了gapi,因为我可以将其添加回去。
任何有助于停止循环的帮助!还看到应将componentDidUpdate用作componentWillReceiveProps,但现在我会采取任何措施。
编辑
componentWillReceiveProps(nextProps) {
whenGapiReady(() => {
const { Id } = this.props;
if(nextProps.Id === this.props.Id) {
this.props.fetchFileUploads(this.props.Id)
}
});
}
以上内容仍然循环不断……?
答案 0 :(得分:0)
您需要在重构代码中正确拼写Receive
:
componentWillReceiveProps(nextProps){
// ^^
if(nextProps.Id !== this.props.Id)
dispatch(this.props.fetchPlayerFileUploads(Id))
}
答案 1 :(得分:0)
#include <iostream>
`#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(){
Mat bgr=imread("image.png",1);
namedWindow("image",CV_WINDOW_FREERATIO);
imshow("image",bgr);
waitKey(0);
Mat hsv;
cvtColor(bgr,hsv,COLOR_BGR2HSV);
Mat mask1;
Mat mask2;
inRange(hsv,Scalar(0,100,100), Scalar(1,255,255), mask1);
inRange(hsv,Scalar(176,100,100), Scalar(179,255,255), mask2);
Mat mask =mask1 | mask2;
namedWindow("Output",CV_WINDOW_FREERATIO);
imshow("Output",mask);
waitKey(0);
Scalar mean (InputArray bgr, InputArray mask);
{
cout << "Mask= " << mean << endl;
}
if(nextProps.Id === this.props.Id) {
this.props.fetchFileUploads(this.props.Id)
}
每次都会被调用,并且componentWillReceiveProps
始终等于nextProps.Id
,因此无限循环,您可以存储ID来声明状态并从那里改进比较。 / p>