前端可选链操作符 “ ? ”
useEffect(() => {
if (data?.hash) {
handleCreateNFTContract(data?.hash);
}
}, [data]);
这里data?起了什么作用?
data? 是一个可选链操作符。它用于安全地访问嵌套对象的属性,而不会导致错误。
在你的示例中,data 可能是一个对象,它有一个 hash 属性。但是,data 也可能是 undefined 或 null。如果 data 是 undefined 或 null,则访问 data.hash 会导致错误。
可选链操作符允许你安全地访问嵌套对象的属性,而不会导致错误。如果 data 是 undefined 或 null,则可选链操作符会返回 undefined。
示例
以下是如何使用可选链操作符:
const data = {
name: 'John Doe',
age: 30,
address: {
street: '123 Main Street',
city: 'New York',
},
};
// 安全地访问 data.address.street
const street = data?.address?.street;
// 如果 data 或 data.address 为 undefined 或 null,则 street 将为 undefined
console.log(street); // 输出:123 Main Street
在问题的示例中,data?.hash 检查 data 是否存在且不为 undefined 或 null。如果 data 存在且不为 undefined 或 null,则它会访问 data.hash。否则,它会返回 undefined。
这可以防止在 data 为 undefined 或 null 时出现错误。
注意:
可选链操作符是 ES11 中引入的一个相对较新的特性。它在所有现代浏览器中都受到支持,但它可能不被旧浏览器所支持。 或 undefined 时出现错误。