React JS Typescript usestate 与布尔值

Posted

技术标签:

【中文标题】React JS Typescript usestate 与布尔值【英文标题】:React JS Typescript usestate with boolean 【发布时间】: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

谢谢!

【问题讨论】:

【参考方案1】:

你可以这样添加:

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

错误在于调用函数。

你需要这样称呼它。

props.changedLogging();

【讨论】:

错误还在显示,,, 错误在 setIsLogged( !isLogged ); 能否请您说明您从何处以及如何调用changedLogging 函数? 在这里,您将函数作为道具传递。请添加调用函数的代码。 准备好了!...所以你认为错误是 props.changedLogging ???? 对...错误在 props.changedLogging 中。你需要像props.changedLogging()这样调用这个函数。

以上是关于React JS Typescript usestate 与布尔值的主要内容,如果未能解决你的问题,请参考以下文章

React Typescript 泛型类型重载(例如 useState)

如何使用 useState 在点击时显示/隐藏移动导航栏? React + TypeScript + Tailwind 项目

如何使用 Typescript 和 useState 将类型对象设置为 React 的初始值?

如何在 React 中正确使用 useState 钩子和 typescript?

如何使用 usestate 和 setstate 而不是 this.setState 使用 react 和 typescript?

将基于类的 js useState 数组转换为 typescript Hook 问题