属性“Navigator”不存在错误:React Native 应用程序

问题描述 投票:0回答:1

每当我通过零食运行我的应用程序时,我都会收到此错误:React Hook useEffect 有一个不必要的依赖项:Navigator。排除它或删除依赖项数组。像“Navigator”这样的外部范围值不是有效的依赖项,因为改变它们不会重新渲染组件。 (反应钩子/详尽的依赖)

我尝试在网上寻找修复程序并尝试重新安装一些软件包,但没有任何效果。

与错误相关的代码在这里:

export default function App() { 

  const [image, setImage] = useState(null);

  useEffect(() => {
      if (image != null){
    const formData = new FormData();
    formData.append('image', {
      uri: image,
      name: 'image.jpg',
      type: 'image/jpeg',
    });

    fetch('http://192.168.1.75:8000/classify', {
      method: 'POST',
      body: formData,
      headers: {
        'Content-Type': 'multipart/form-data',
      },
    })
      .then((response) => response.json())
      .then((data) => {
        Navigator.navigate('Detail', { disease: data });
      })
      .catch((error) => {
        console.error(error);
      });

    
  }
  }, [image, Navigator])

我尝试重新安装软件包,但没有成功。 我尝试通过手机运行它,但这也不起作用 我尝试一点点删除代码,但仍然会导致错误

react-native react-navigation react-navigation-v5
1个回答
0
投票

嘿:) useEffect 挂钩应该只包含效果本身使用的依赖项。 Navigator 变量不应包含在依赖项数组中,因为它是一个全局对象,更改它不会导致组件重新渲染。

要解决这个问题,可以从依赖数组中删除Navigator:

useEffect(() => {
    if (image != null) {
        const formData = new FormData();
        formData.append('image', {
            uri: image,
            name: 'image.jpg',
            type: 'image/jpeg',
    });

    fetch('http://192.168.1.75:8000/classify', {
        method: 'POST',
        body: formData,
        headers: {
            'Content-Type': 'multipart/form-data',
        },
    })
   .then((response) => response.json())
   .then((data) => {
       Navigator.navigate('Detail', { disease: data });
   })
   .catch((error) => {
       console.error(error);
   });
 }
}, [image]);
© www.soinside.com 2019 - 2024. All rights reserved.