简体   繁体   English

打字稿:_this2.onClick不是一个函数

[英]Typescript: _this2.onClick is not a function

I use typescript for react-native development. 我使用typescript进行react-native开发。 Here List and ListItem are from NativeBase and ListItem is like TouchableOpacity component. 这里ListListItem是从NativeBase和ListItem是像TouchableOpacity组件。

...
public onClick = () => this.props.navigation.navigate("NextScreen");
public _renderRow = (item: any) {
    return (
        <ListItem onPress={() => this.onClick()}>
             ...
        </ListItem>
    );
}
public render() {
   return(
        <List
            dataArray={this.data}
            renderRow={this._renderRow}
        />
   );
}

When I click item, it shows following error. 当我单击项目时,它显示以下错误。

_this2.onClick is not a function. _this2.onClick不是一个函数。 (In '_this2.onClick()', '_this2.onClick' is undefined) (在'_this2.onClick()'中,'_this2.onClick'未定义)

I assume this is because onClick() function isn't bound to component class. 我假设这是因为onClick()函数没有绑定到组件类。 Is the function bound automatically in typescript? 函数是否在typescript中自动绑定?

How can I solve this problem? 我怎么解决这个问题?

You need to bind the method to the components class: 您需要bind方法bind到组件类:

public onClick() { 
  this.props.navigation.navigate("NextScreen"); 
}
public _renderRow(item: any) {
    return (
        <ListItem onPress={this.onClick}>
             ...
        </ListItem>
    );
}
public render() {
   return(
        <List
            dataArray={this.data}
            renderRow={this._renderRow.bind(this)} // <---- Here
        />
   );
}

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

相关问题 React JS 中的 Typescript onclick function - Typescript onclick function in React JS onClick function 错误与 typescript 构建时 - onClick function error with typescript when build 如何在TypeScript的HTML属性中声明onclick函数? - How to declare onclick function in HTML property in TypeScript? 打字稿将映射元素传递给函数 onclick - Typescript pass mapped element to Function onclick 将 onClick function 作为道具发送到带有 Typescript 的 React 组件 - Send onClick function as props to a component in React with Typescript Typescript和Jquery:将类调用到Jquery onclick函数的最佳实践是什么? - Typescript & Jquery: what is the best practice to call a class into Jquery onclick function? 如何将 innerHTML 传递给 onClick function (Typescript) - How can I pass innerHTML to an onClick function (Typescript) 在 onClick 中使用解构的 useMutation function 时,Apollo 反应 typescript 错误 - Apollo react typescript error when using destructured useMutation function in onClick 将 onclick function 作为参数传递给反应/打字稿中的另一个组件 - passing onclick function as argument to another component in react/typescript Vue 打字稿 Konva。 Canvas onClick 抛出“未捕获的语法错误:函数语句需要函数名称” - Vue Typescript Konva. Canvas onClick throws "Uncaught SyntaxError: Function statements require a function name"
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM