javascript - 我不断得到预期的“`onClick`监听器是一个函数,而不是一个`object`类型的值。” 错误,我不知道如何解决
问题描述
import React from 'react';
import useState from './App';
import username from './App';
import setUsername from './App';
import setAppState from './App';
function LoginPage(props) {
const onClick = () => {
props.onLogin(setUsername);
}
return (
<div className="chat-login-page-container">
<div className="chat-login-page-controls-container">
<h4>Set your username</h4>
<input type="text"
placeholder="Username"
value={props.username}
username={username}
setUsername={username}
onChange={props.onChange} />
<button type="button" disabled={username.length === 0} onClick='onClick'>Log
in</button>
</div>
</div>
);
}
export default LoginPage;
我一直试图用不同的变量来修复代码,并试图让它不是一个值,它只是不工作。我不知所措,不知道该怎么办。
解决方案
首先,你应该对道具使用对象解构
常量 {用户名,onChange,onLogin} = 道具;
在组件“按钮”中,该属性
"onClick"
需要一个函数。使用您的代码onClick='onClick'
,该属性将获取字符串而不是函数。我不确定 onClick 函数应该做什么,但它应该看起来像这样:
<button type="button" disabled={username.length === 0} onClick={()=>{onLogin(setUsername}}>Log in</button>
推荐阅读
- flutter - Flutter:如何将前景添加到可关闭的小部件
- javascript - 表单输入数字 onchange
- c# - ASP.NET API 请求未成功完成
- java - 根据 JAX-RS 中的规范使用带有 @PathParam 的 PathSegment?
- flutter - Flutter BLoC:mapEventToState 的全局异常处理程序
- javascript - 如何一一执行 PHP 和 Javascript 代码?
- javascript - CryptoJS.HmacSHA256 与 Indy10 TIdHMACSHA256.HashValue
- java - 从 java -jar 运行 Spring Boot 应用程序时未提交事务
- reactjs - 如何在 React 中将多维数组作为道具传递?
- python - 索引时元组解包