91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • React報錯Expected?an?assignment?or?function?call?and?instead?saw?an?expression怎么解決

React報錯Expected?an?assignment?or?function?call?and?instead?saw?an?expression怎么解決

發布時間:2022-08-24 17:58:38 來源:億速云 閱讀:318 作者:iii 欄目:開發技術

這篇文章主要介紹“React報錯Expected an assignment or function call and instead saw an expression怎么解決”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“React報錯Expected an assignment or function call and instead saw an expression怎么解決”文章能幫助大家解決問題。

總覽

當我們忘記從函數中返回值時,會產生"Expected an assignment or function call and instead saw an expression"錯誤。為了解決該錯誤,確保顯式地使用return語句或使用箭頭函數隱式返回。

React報錯Expected?an?assignment?or?function?call?and?instead?saw?an?expression怎么解決

下面有兩個示例來展示錯誤是如何產生的。

// App.js

const App = props => {
  const result = ['a', 'b', 'c'].map(el => {
    // ?? Expected an assignment or function call and instead saw an expression. eslint no-unused-expressions
    el + '100';
  });

  return <div>hello world</div>;
};

const mapStateToProps = (state) => {
  // ?? Expected an assignment or function call and instead saw an expression. eslint no-unused-expressions
  todos: ['walk the dog', 'buy groceries']
}

export default App;

App組件中,錯誤是在Array.map()方法中引起的。這里的問題在于,我們沒有從傳遞給map()方法的回調函數中返回任意值。

在JavaScript函數中,如果我們沒有顯式地使用return語句,或者使用箭頭函數隱式地返回一個值,則返回undefined

mapStateToProps函數中的問題是一樣的,我們忘記從函數中返回值。

顯式返回

為了解決該錯誤,我們必須顯式地使用return語句或使用箭頭函數隱式返回值。

下面是一個例子,用來說明如何使用顯式return來解決這個錯誤。

const App = props => {
  const result = ['a', 'b', 'c'].map(el => {
    return el + '100'; // ????? using explicit return
  });

  console.log(result);

  return <div>hello world</div>;
};

const mapStateToProps = state => {
  return {todos: ['walk the dog', 'buy groceries']}; // ????? using explicit return
};

export default App;

我們通過在map()方法中顯式返回來解決問題。這是必須的,因為Array.map方法返回一個數組,其中包含我們傳遞給它的回調函數所返回的所有值。

需要注意的是,當你從一個嵌套函數中返回時,你并沒有同時從外層函數中返回。

隱式返回

另一種方法是使用箭頭函數的隱式返回。

// ????? implicit return
const App = props => (
  <div>
    <h3>hello</h3>
    <h3>world</h3>
    {['a', 'b', 'c'].map(element => (
      <div key={element}>{element}</div>
    ))}
  </div>
);

// ????? implicit return
const result = ['a', 'b', 'c'].map(element => element + '100');
console.log(result); // ????? ['a100', 'b100', 'c100']

// ????? implicit return
const mapStateToProps = state => ({
  todos: ['walk the dog', 'buy groceries'],
});

export default App;

我們為App組件使用了隱式地箭頭函數返回。

需要注意的是,我們根本沒有使用大括號。簡短的隱式返回使用圓括號。

返回對象

如果我們使用隱式返回來返回一個對象,我們必須用圓括號來包裹這個對象。

// ? RIGHT
const mapStateToProps = state => ({
  todos: ['walk the dog', 'buy groceries'],
});

// ?? WRONG
const msp = state => {
  // ?? Expected an assignment or function call and instead saw an expression.eslint no-unused-expressions
  todos: ['walk the dog', 'buy groceries']
};

一個簡單的思考方式是--當你使用大括號而沒有用圓括號包裹它們時,你是在聲明一個代碼塊(比如if語句)。

{
  console.log('this is my block of code');
}

當不使用圓括號時,你有一個代碼塊,而不是一個對象。

但當你用圓括號包裹住大括號時,你就有一個隱式的箭頭函數返回。

如果你認為eslint規則不應該在你的方案中造成錯誤,你可以通過使用注釋來關閉某一行的eslint規則。

// eslint-disable-next-line no-unused-expressions

注釋應該放在造成錯誤的那一行的正上方。

關于“React報錯Expected an assignment or function call and instead saw an expression怎么解決”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

清徐县| 六枝特区| 宝坻区| 吴江市| 怀远县| 湘西| 都江堰市| 四子王旗| 天门市| 刚察县| 五河县| 永兴县| 历史| 乡宁县| 靖西县| 深水埗区| 龙南县| 莒南县| 福安市| 汕头市| 弋阳县| 宁国市| 双鸭山市| 曲沃县| 屏东县| 田东县| 武穴市| 崇阳县| 甘南县| 海林市| 昔阳县| 新竹县| 株洲县| 乌拉特后旗| 鲁甸县| 将乐县| 靖远县| 波密县| 赣榆县| 壤塘县| 辽宁省|