繁体   English   中英

React 意外调用 function

[英]React is calling function unexpectedly

这是我的登录组件:

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() function。 查看我的代码,我只设置了 onClick 来调用submit function。

我的代码有问题吗?

编辑:删除 classNames 以便于查看

尝试:

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>
    );
};

您在每次渲染时都调用submit function。 onClick 需要一个 function,但你是直接调用一个 function。

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

将被替换为

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM