javascript - 将变量传递到自定义按钮

标签 javascript reactjs typescript button material-ui

我有一个如下所示的自定义按钮:

export default function CustomButton(isValid: any, email: any) {
    return (
        <Button
            type="submit"
            disabled={!isValid || !email}
            style={{
                background: '#6c74cc',
                borderRadius: 3,
                border: 0,
                color: 'white',
                height: 48,
                padding: '0 30px',
            }}
        >
            Remove User</Button>
    )
}

目前,我只是将 isValidemail 作为变量传递,但对于我使用此按钮组件的所有页面来说,这些变量都会有所不同。如何更改它以便可以传递禁用条件列表以及其他参数?那么我将如何调用这个组件呢?

其次,现在,当我在主页中像这样使用它时,它可以工作:

{CustomButton(isValid, email)} 

但是如果我尝试这样调用它:

<CustomButton isValid email></CustomButton>

按钮的禁用不起作用,我也可以在不满足这些条件的情况下单击它。我该如何更改?

最佳答案

我只需使用 disabled 属性并处理父级中的条件:

const disabled = !isValid || !email;
// example with other conditions:
// const disabled = !isValid || !email ||!username || !password;
//...
<CustomButton disabled={disabled} />

那么该组件可以简单地是:

type ButtonProps = { disabled: boolean };
export default function CustomButton({ disabled }: ButtonProps) { // you also forgot the destructure your props which is why it wasnt working
    return (
        <Button
            type="submit"
            disabled={disabled}
            style={{
                background: '#6c74cc',
                borderRadius: 3,
                border: 0,
                color: 'white',
                height: 48,
                padding: '0 30px',
            }}
        >
            Remove User</Button>
    )
}

关于javascript - 将变量传递到自定义按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60794431/

相关文章:

javascript - 如何根据对象的属性加载动态组件?

javascript - 适当的事件绑定(bind)

javascript - 需要观察滚动条

reactjs - 在 React 中获取 [object Object] 而不是 object

javascript - 即使数据没有改变,react redux useSelector 也会重新渲染

javascript - 按属性对三个不同的对象数组进行排序

javascript - 如何通知 TypeScript 编译器对 JS 数组原型(prototype)的扩展?

javascript - 我应该担心 "window is not defined"JSLint 严格模式错误吗?

javascript - Vue - 从 REST API 实时获取数据

javascript - 如何将具有 z 索引的 <img> 居中?