Reactjs I';我试图使用useffect';用于更换窗口。我没有得到任何错误,但它没有';不行。怎么了?如何让它工作?

Reactjs I';我试图使用useffect';用于更换窗口。我没有得到任何错误,但它没有';不行。怎么了?如何让它工作?,reactjs,typescript,electron,use-effect,Reactjs,Typescript,Electron,Use Effect,通过dropzone,我上传或删除文件。 我要做的是根据已删除的文件类型打开一个新的窗口类型。 为了实现这一点,我尝试使用useffect钩子。但它不会产生任何错误,也不起作用: const [win, setWin] = useState("A-Type"); let accepted_file = acceptedFiles[0]; useEffect(() => { function handleSecondWindowType () { if (

通过dropzone,我上传或删除文件。 我要做的是根据已删除的文件类型打开一个新的窗口类型。 为了实现这一点,我尝试使用useffect钩子。但它不会产生任何错误,也不起作用:

const [win, setWin] = useState("A-Type");

let accepted_file = acceptedFiles[0];

useEffect(() => {
  function handleSecondWindowType () {
    if (accepted_file.type.includes('image/')) {
      setWin("A-Type")
    }
    else {
      setWin("B-Type");
    }
  }
},[accepted_file]);

看起来您已经创建了一个内部函数,但忘记了调用它。你必须打电话,否则什么也没发生:

useffect(()=>{
//叫它
handleSecondWindowType();
函数handleSecondowType(){
if(接受的_file.type.includes('image/')){
setWin(“A型”)
}
否则{
setWin(“B型”);
}
}
},[已接受的文件];

看起来您创建了一个内部函数,但忘记了调用它。你必须打电话,否则什么也没发生:

useffect(()=>{
//叫它
handleSecondWindowType();
函数handleSecondowType(){
if(接受的_file.type.includes('image/')){
setWin(“A型”)
}
否则{
setWin(“B型”);
}
}
},[已接受的文件];

您可以像tmhao2005所说的那样调用它,也可以删除附加的函数声明

useffect(()=>{
if(接受的_file.type.includes('image/')){
setWin(“A型”)
}
否则{
setWin(“B型”);
}
},[已接受的文件];
另一种可能性是:

函数handleSecondowType(){
if(接受的_file.type.includes('image/')){
setWin(“A型”)
}
否则{
setWin(“B型”);
}
}
useffect(handleSecondWindowType,[accepted_file]);

您可以像tmhao2005所说的那样调用它,也可以删除附加的函数声明

useffect(()=>{
if(接受的_file.type.includes('image/')){
setWin(“A型”)
}
否则{
setWin(“B型”);
}
},[已接受的文件];
另一种可能性是:

函数handleSecondowType(){
if(接受的_file.type.includes('image/')){
setWin(“A型”)
}
否则{
setWin(“B型”);
}
}
useffect(handleSecondWindowType,[accepted_file]);

为什么要声明函数
HandleSecondowType
?只需删除声明,然后在
()=>{…}
之间执行您想要执行的操作。或者就叫它吧。是的。这是一个可能的解决办法。谢谢您为什么声明函数
handleSecondWindowType
?只需删除声明,然后在
()=>{…}
之间执行您想要执行的操作。或者就叫它吧。是的。这是一个可能的解决办法。非常感谢。