![](/img/trans.png)
[英]Getting the error that Expected an assignment or function call and instead saw an expression no-unused-expressions?
[英]Return statement leads to: Expected an assignment or function call and instead saw an expression no-unused-expressions
我有時仍然很難理解何時或何時不使用return語句。 我最近在我的 ReactJS 代碼中遇到了一個問題。 基本上我從 fetch 調用中得到 html 然后將其設置為元素的 innerHTML。 設置后我需要稍微更改該數據。
當它不起作用時:
useEffect(()=>{
setHeaderFooter(props.data.header,props.data.footer, changeLinks)
}, [props.data.header,props.data.footer])
const changeLinks = ()=>{
$(document).find('nav.navbar a[href*="/oc"]').each(function (index, element) {
var original = $(element).attr('href');
var final = process.env.REACT_APP_PLATFORM_URL + original;
$(element).attr('href', final);
});
// Adds the first letter of the users name as the icon in header.
$('#firstLetter').text()
$('#firstLetterLink').text().charAt(0).toUpperCase()
}
export const setHeaderFooter=(head,foot, callback) =>{
let header = document.querySelector('#header')
let footer = document.querySelector('#footer')
header.innerHTML = head, footer.innerHTML = foot
return callback()
}
當它工作時(最后沒有修改階段):
useEffect(()=>{
setHeaderFooter(props.data.header,props.data.footer)
}, [props.data.header,props.data.footer])
const changeLinks = ()=>{
$(document).find('nav.navbar a[href*="/oc"]').each(function (index, element) {
var original = $(element).attr('href');
var final = process.env.REACT_APP_PLATFORM_URL + original;
$(element).attr('href', final);
});
// Adds the first letter of the users name as the icon in header.
$('#firstLetter').text()
$('#firstLetterLink').text().charAt(0).toUpperCase()
}
export const setHeaderFooter=(head,foot) =>{
let header = document.querySelector('#header')
let footer = document.querySelector('#footer')
return header.innerHTML = head, footer.innerHTML = foot
}
有人可以解釋一下這里發生了什么。 我想更好地理解 return 語句。
問題是在header
和footer
分配之間使用的逗號:
改變這個:
header.innerHTML = head, footer.innerHTML = foot
return callback()
對此:
header.innerHTML = head;
footer.innerHTML = foot;
return callback();
要解釋這個問題,請參閱MDN 文檔:
逗號運算符 (,) 計算其每個操作數(從左到右)並返回最后一個操作數的值
在您的情況下, footer.innerHTML = foot
是最后一個操作數,將被返回,但由於您沒有將返回的值分配給任何東西,所以它被浪費了,因此您得到了 lint 錯誤。 您可以在Disallow Unused Expressions (no-unused-expressions)中閱讀有關 lint 錯誤的更多信息
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.