我需要帮助制作一个可重用的组件

下面是调用组件的代码:

export var MyPublicFunction = function (inArg: number) {
    alert(inArg);
}

ReactDOM.render(<MyButton name="My Button" clickFunction={MyPublicFunction(1)} >Button</MyButton>, document.getElementById('content'));

这里是我要写的部分:

interface myProps {
   name: string;
   clickFunction: any
}

class MyButton extends React.Component<myProps, {}> {

    constructor(props: myProps) {
        super(props);
    }

    render() {
        return (<div>
            <button ref="btn1"  onClick={this.props.clickFunction} >
                {this.props.name}
             </button>
        </div>);
    } //end render.
} //end class.

推荐答案

<MyButton name="My Button" clickFunction={MyPublicFunction(1)} >

在计算包含表达式的过程中,立即调用表达式MyPublicFunction(1).您想要的是提供functionclickFunction:

<MyButton name="My Button" clickFunction={() => MyPublicFunction(1)} >

如果你写了这样一个错误:

interface myProps {
   name: string;
   clickFunction: () => void;
}

Typescript相关问答推荐

React Hook中基于动态收件箱定义和断言回报类型

如何基于对象关键字派生类型?

如何在TypeScript对象迭代中根据键推断值类型?

将对象属性转换为InstanceType或原样的强类型方法

在嵌套属性中使用Required

具有泛型类型和缺省值的键

参数属性类型定义的REACT-RUTER-DOM中的加载器属性错误

角效用函数的类型推断

使用2个泛型类型参数透明地处理函数中的联合类型

有没有可能产生输出T,它在视觉上省略了T中的一些键?

笛卡尔产品类型

从泛型类型引用推断的文本类型

将具有Readonly数组属性的对象接口转换为数组

常量类型参数回退类型

Typescript 类型守卫一个类泛型?

有没有办法在Zod中使用跨字段验证来判断其他字段,然后呈现条件

如何从抽象类的静态方法创建子类的实例?

确保财产存在

元素隐式具有any类型,因为string类型的表达式不能用于索引类型{Categories: Element;管理员:元素; }'

使用 Next.js 路由重定向到原始 URL 不起作用