期望一个赋值或函数调用,而是在三元上看到一个表达式

Expected an assignment or function call and instead saw an expression on ternary

目前正在获取 期望赋值或函数调用,而是看到表达式 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]);

问题不在于 returning div(为什么还要 return 一个 div?),而是

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

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

在此用例中,您不需要 return 来自 useEffect 的任何内容。另外 useEffect 不会渲染任何东西,因为它是执行副作用的钩子。

它抱怨你如何使用三元而不是使用 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 }
})