【问题标题】:React JS Typescript usestate with booleanReact JS Typescript usestate 与布尔值
【发布时间】:2021-07-17 23:23:59
【问题描述】:

我一直在处理这个问题,但我不明白这个错误,所以看看这个我有这行:

function App() {

  const [ isLogged, setIsLogged ] = React.useState<boolean>(false);

  const changedLogging = () => {
    setIsLogged( !isLogged );
  }

  return (
    <div className="App">
        {
          !isLogged? <Login changedLogging={ changedLogging } />
          : 
            <div>
              <Header changedLogging={ changedLogging } />
              <Profile />
            </div>
        }
    </div>
  );
}


login.tsx

const OnSubmit = ( event: React.FormEvent<HTMLFormElement>  ) =>{
    event.preventDefault();
   props.changedLogging;
}

header.tsx
          <Button
            {...{
              key: 'out',
              color: "inherit",
              to: props.changedLogging,
              component: RouterLink,
              className: menuButton,
            }}
          > 
            Out
          </Button>

当它运行时显示此错误: 期望一个赋值或函数调用,而是看到一个表达式@typescript-eslint/no-unused-expressions

你知道为什么吗???

我正在尝试使用文件 .tsx 创建一个简单的登录,变量 isLogged 用于控制一个简单的登录。因此,当用户记录变量 isLogged 更改为 true 并且用户退出时,变量为 false

谢谢!

【问题讨论】:

    标签: reactjs typescript


    【解决方案1】:

    你可以这样添加:

    const [ isLogged, setIsLogged ] = React.useState<boolean>(false);
    

    错误在于调用函数。

    你需要这样称呼它。

    props.changedLogging();

    【讨论】:

    • 错误还在显示,,, 错误在 setIsLogged( !isLogged );
    • 能否请您说明您从何处以及如何调用changedLogging 函数?
    • 在这里,您将函数作为道具传递。请添加调用函数的代码。
    • 准备好了!...所以你认为错误是 props.changedLogging ????
    • 对...错误在 props.changedLogging 中。你需要像props.changedLogging()这样调用这个函数。
    猜你喜欢
    • 2021-02-24
    • 1970-01-01
    • 2021-10-27
    • 2020-03-16
    • 2019-10-06
    • 2017-04-08
    • 2021-10-28
    • 2020-12-10
    • 1970-01-01
    相关资源
    最近更新 更多