【问题标题】:Expected an assignment or function call and instead saw an expression on ternary期望一个赋值或函数调用,而是在三元上看到一个表达式
【发布时间】:2020-04-05 03:37:31
【问题描述】:

目前正在获取 期望一个赋值或函数调用,而是看到一个表达式 no-unused-expressions

我尝试在三元运算符末尾返回一个空 div,但仍然得到相同的错误。

    React.useEffect(() => {
        if (response && !isLoading) {
            showNotification({
                variant: "success",
                message: `Your invitation ${
                    name.props ? name.props.children : name
                }-${data} was successfully sent.`
            });
            closeAlert();
            viewName === "GetAllData"
                ? dispatch({
                      type: "FETCH_DATA",
                      payload: { loading: true }
                  })
                : dispatch({
                      type: "FETCH_AVAILABLE_STAFF",
                      payload: { loading: true }
                  });
        }
        return <div />;
    }, [response, isLoading]);

【问题讨论】:

  • 为什么要返回一个 div?无论如何它都不会被渲染

标签: javascript reactjs eslint conditional-operator


【解决方案1】:

它抱怨你如何使用三元而不是使用 if/else 语句来完成这项工作。代码正在等待

if (viewName === "GetAllData") {
  dispatch({
    type: "FETCH_DATA",
    payload: { loading: true }
  })
} else {
  dispatch({
    type: "FETCH_AVAILABLE_STAFF",
    payload: { loading: true }
  });
}

如果您想使用三元组,您需要对对象执行此操作,因为唯一不同的是类型,请在类型上使用它。

dispatch({
  type: viewName === "GetAllData" ? "FETCH_DATA" : "FETCH_AVAILABLE_STAFF",
  payload: { loading: true }
})

【讨论】:

    【解决方案2】:

    问题不在于返回div(为什么还要返回div?)而是,

    viewName === 'GetAllData'
      ? dispatch({
          type: 'FETCH_DATA',
          payload: { loading: true },
        })
      : dispatch({
          type: 'FETCH_AVAILABLE_STAFF',
          payload: { loading: true },
        });
    

    上面的三元运算是expression。将其更改为 if 块。

    在此用例中,您无需从 useEffect 返回任何内容。 useEffect 也不会渲染任何东西,因为它是一个执行副作用的钩子。

    【讨论】:

      猜你喜欢
      • 2020-12-21
      • 2017-09-09
      • 1970-01-01
      • 2019-04-22
      • 2020-02-12
      • 2019-10-15
      • 2020-11-08
      • 1970-01-01
      相关资源
      最近更新 更多