调用方法时出错。反应this._method(...)。bind不是函数

时间:2016-06-15 11:05:38

标签: reactjs

您好我是新手,我正在开始创建我的第一个组件。它看起来像这样:

var React = require('react')
var ReactDom = require('react-dom')



class TestText extends React.Component {

    render() {
        const number1 = 6
        const number2 = 5

        return (
            <div>
                <h3>Hello World</h3>
                <p> The result of multiply {number1} and {number2} is {this._multiply(number1,number2).bind(this)}</p>
            </div>
        )
    }

    _multiply (num1, num2) {
        return num1*num2
    }
}

ReactDom.render(<TestText />, document.getElementById('test-container'))

当我尝试在浏览器上打开它时,它会抛出以下错误:

TypeError:this._multiply(...)。bind不是函数

对此有何帮助?谢谢!

1 个答案:

答案 0 :(得分:2)

那么,

  • spring: application: name: mille-test2 cloud: config: discovery: enabled: true serviceId: mille-config-server eureka: client: healthcheck: enabled: true server: port: 50000 ssl: key-store: classpath:my.jks key-store-password: secret key-password: secret eureka: client: enabled: true serviceUrl: defaultZone: http://localhost:8761/eureka/ instance: nonSecurePortEnabled: false securePortEnabled: true securePort: ${server.port} instanceId: ${spring.application.name}:${spring.application.instance_id:${random.value}} statusPageUrl: https://${eureka.hostname}:${server.port}/info healthCheckUrl: https://${eureka.hostname}:${server.port}/health homePageUrl: https://${eureka.instance.hostname}:${server.port}/ secureVirtualHostName: ${spring.application.name} metadataMap: hostname: ${eureka.instance.hostname} securePort: ${server.port} 是函数引用,您可以在其中应用bind。

  • this._multiply返回函数结果,这是一个数字。

您可以使用this._multiply(a, b),这是正确的。 您可以简化括号并使用this._multiply.bind(this, a, b)()。 但是this._multiply.call(this, a, b)在函数中不使用任何this._multiply引用,因此根本不需要绑定,只需键入:

this