如何防止错误与在反应中缺少与数据库的连接

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

我有一个错误“ TypeError:无法读取未定义的属性”切片“的问题,当出现在与数据库缺乏连接的情况下,我尝试使用输入的onChange。我想防止这种情况,而不是显示此错误,只是不显示任何内容。我用它来过滤数据库中的一些数据。商品是我得到的产品的初始清单。当我断开与数据库的连接时,我的列表“项目”变为“未定义”。为了与项目建立联系,我使用了效果,并使用状态和函数filterItemBy来过滤数据。我想做类似if(items!== null){做所有事情都在onChange}的事情,但是如果为null则不要过滤。请参阅下面的代码部分。预先感谢您的帮助。

let [filteredItem, setFilteredItem] = useState();

useEffect(() => {
........
}

    <input className="shop" placeholder="choose item" 
                        onChange={(event) => {
                        let tableItemCopy = (items).slice(0);
                        tableItemCopy = tableItemCopy.filter((filteredItem: any) => filterItemBy(filteredItem, event));
                        setFilteredItem(tableItemCopy);   
                    }}
                    />
reactjs error-handling undefined hook onchange
1个回答
0
投票

所以你说的想做...

onChange={(event) => {

   if (items === undefined) {
       // Show an error
       alert('Here is my super useful error message!');
       return;
   }

   let tableItemCopy = (items).slice(0);
   tableItemCopy = tableItemCopy.filter((filteredItem: any) => filterItemBy(filteredItem, event));
   setFilteredItem(tableItemCopy);   
}}

不要忘记undefinednull不同。空是一个对象,是“真实的”。最好进行显式比较并处理准确的结果。

© www.soinside.com 2019 - 2024. All rights reserved.