Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在Typescript React中声明可选事件回调_Reactjs_Typescript - Fatal编程技术网

Reactjs 在Typescript React中声明可选事件回调

Reactjs 在Typescript React中声明可选事件回调,reactjs,typescript,Reactjs,Typescript,如何为React Typescript中的事件定义可选回调 interface Props{ data: any handleClick?: ()=>void } const FunctionalComponent: React.StatelessComponent<Props> = (props) => { return ( <React.Fragment> {props.data}

如何为React Typescript中的事件定义可选回调

interface Props{
    data: any
    handleClick?: ()=>void
}

const FunctionalComponent: React.StatelessComponent<Props> = (props) => {

    return (
        <React.Fragment>
            {props.data}
            <div onClick={() => props.handleClick()}>optional Click Event</div>
        </React.Fragment>
    )
}

问题在于,由于属性是可选的(并且您启用了
strictNullChecks
),Typescript将强制您确保
handleClick
实际上没有未定义

最简单的解决方案是使用
&&
运算符进行检查,例如:

    <React.Fragment>
        {props.data}
        <div onClick={() => props.handleClick && props.handleClick()}>optional Click Event</div>
    </React.Fragment>

{props.data}
props.handleClick&&props.handleClick()}>可选单击事件

问题在于,由于属性是可选的(并且您启用了
strictNullChecks
),Typescript将强制您确保
handleClick
实际上没有未定义

最简单的解决方案是使用
&&
运算符进行检查,例如:

    <React.Fragment>
        {props.data}
        <div onClick={() => props.handleClick && props.handleClick()}>optional Click Event</div>
    </React.Fragment>

{props.data}
props.handleClick&&props.handleClick()}>可选单击事件
    <React.Fragment>
        {props.data}
        <div onClick={() => props.handleClick && props.handleClick()}>optional Click Event</div>
    </React.Fragment>