Reactjs 在传递多个参数后调用了两次useEffect
我正在使用react-hooks Useffect在组件中加载数据。我面临着一个奇怪的问题,在我的例子中,如果有一些数据来自后端,我必须将其绑定到我的组件,否则默认值应该绑定到我的组件。不幸的是,我的代码在大多数情况下都工作得很好,但有时会显示默认值,即使数据来自后端。实际上,它加载了两次,数据有时会被默认值覆盖 我试过很多方法,但都失败了Reactjs 在传递多个参数后调用了两次useEffect,reactjs,react-redux,react-hooks,use-effect,Reactjs,React Redux,React Hooks,Use Effect,我正在使用react-hooks Useffect在组件中加载数据。我面临着一个奇怪的问题,在我的例子中,如果有一些数据来自后端,我必须将其绑定到我的组件,否则默认值应该绑定到我的组件。不幸的是,我的代码在大多数情况下都工作得很好,但有时会显示默认值,即使数据来自后端。实际上,它加载了两次,数据有时会被默认值覆盖 我试过很多方法,但都失败了 useEffect(() => { getReadJson(); getReadAudio(); if (readJ
useEffect(() => {
getReadJson();
getReadAudio();
if (readJson) {
const Jparse = JSON.parse(readJson);
console.log("Jparse", Jparse);
Jparse &&
Jparse.map((jsondata) => {
peaksInstance.segments.add({
startTime: parseFloat(jsondata.startTime),
endTime: parseFloat(jsondata.endTime),
labelText: jsondata.segmentData,
editable: false,
speakerId: jsondata.speakerId,
});
peaksInstance.points.add({
time: parseFloat(jsondata.endTime),
editable: false,
});
});
}
if (peaksInstance.segments._segments.length == 0) {
debugger;
const endTime = peaksInstance.player.getDuration();
peaksInstance.segments.add({
startTime: 0,
endTime: endTime,
labelText: "",
editable: false,
speakerId: "",
});
}
}, [getReadJson, readJson, getReadAudio, readAudio]);
我是个新手。任何帮助都将不胜感激。提前感谢。您可以暂时使用这种方式
var isEffect = false
useEffect(() => {
if (isEffect) { isEffect = false; return;}
... code .....
isEffect = true;
})
这样试试
const isFirstRender = useRef(true);
useEffect(() => {
if (isFirstRender.current) {
code...
}
}, []);