为了账号安全,请及时绑定邮箱和手机立即绑定

React 意外调用函数

React 意外调用函数

慕妹3242003 2022-07-21 21:27:17
这是我的登录组件:const Login = () => {    const [user, setUser] = useState("");    const [pass, setPass] = useState("");    return (        <div>            <p>Login</p>            <input                type="text"                onChange={(e) => {                    setUser(e.target.value);                }}            />            <input                type="password"                onChange={(e) => {                    setPass(e.target.value);                }}            />            <button onClick={submit(user, pass)}>                Submit            </button>        </div>    );};它呈现在我的网页上,但submit()每当我输入这两个时它都会调用该函数:文本和密码。查看我的代码,我只设置了 onClick 来调用该submit函数。我的代码有问题吗?
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

submit您在每次渲染时都调用该函数。onClick 接受一个函数,但您是直接调用一个函数。


<button onClick={submit(user, pass)}>

   Submit

</button>

将被替换为


<button onClick={()=>submit(user, pass)}>

   Submit

</button>


查看完整回答
反对 回复 2022-07-21
?
森栏

TA贡献1810条经验 获得超5个赞

尝试 :


const Login = () => {

    const [user, setUser] = useState("");

    const [pass, setPass] = useState("");


    const onSubmit = () => {

       submit(user,pass)

    }


    return (

        <div>

            <p>Login</p>

            <input

                type="text"

                onChange={(e) => {

                    setUser(e.target.value);

                }}

            />

            <input

                type="password"

                onChange={(e) => {

                    setPass(e.target.value);

                }}

            />



            <button onClick={onSubmit}>

                Submit

            </button>

        </div>

    );

};


查看完整回答
反对 回复 2022-07-21
  • 2 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信