Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.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
Javascript 如何获取上下文,即;这";函数中的react js组件?_Javascript_Reactjs_Es6 Class - Fatal编程技术网

Javascript 如何获取上下文,即;这";函数中的react js组件?

Javascript 如何获取上下文,即;这";函数中的react js组件?,javascript,reactjs,es6-class,Javascript,Reactjs,Es6 Class,我试图用ES6做出反应,我被困在一个点上,我试图在点击一个按钮时调用一个函数,从这个函数我只需要调用该组件中的另一个函数,我们怎么做 在这里: import React from 'react'; export default class StopWatch extends React.Component { constructor (props) { super(props); this.state = { elapsed

我试图用ES6做出反应,我被困在一个点上,我试图在点击一个按钮时调用一个函数,从这个函数我只需要调用该组件中的另一个函数,我们怎么做

在这里:

import React from 'react';


export default class StopWatch extends React.Component { 

    constructor (props) {
        super(props);
        this.state = {
            elapsed : 0,
            timer : 0,
            isStart : false
        }   


    }

    onStartClick () {   
      setInterval(
            () => this.tick1(), 100
        );       
    }
    tick1 () {
        console.log('tick starts');
     }

     getTimeSpan (elapsed) {
        let m = String(Math.floor(elapsed/1000/60)+100).substring(1);
        let s = String(Math.floor((elapsed%(1000*60))/1000)+100).substring(1);
        let ms = String(elapsed % 1000 + 1000).substring(1);
        return m+":"+s+"."+ms;
    }

    onResetClick () {
        console.log('on click of reset');
    }

    render() {

        return (
            <div>
                <h1>{this.getTimeSpan(this.state.elapsed)}</h1> <br/>
                <button type="button" onClick={this.onStartClick}>Start</button>
                <button type="button" onClick={this.onResetClick}>Reset</button>
            </div>
        );
    }
}
从“React”导入React;
导出默认类StopWatch扩展React.Component{
建造师(道具){
超级(道具);
此.state={
时间:0,,
计时器:0,
isStart:错
}   
}
onStartClick(){
设定间隔(
()=>this.tick1(),100
);       
}
滴答声1(){
console.log('tick start');
}
getTimeSpan(已用){
设m=String(数学层(经过/1000/60)+100)。子字符串(1);
设s=String(数学层((经过的%(1000*60))/1000)+100);
设ms=String(经过的%1000+1000)。子字符串(1);
返回m+“:“+s+”+ms;
}
单击(){
console.log(“单击重置”);
}
render(){
返回(
{this.getTimeSpan(this.state.appeased)}
开始 重置 ); } }
我正在调用一个函数
“onStartClick
”单击我的
开始按钮,
,在“
onStartClick
”函数中,我试图调用
勾选()
函数,这给了我一个错误


有人能告诉我怎么做吗?

你想要的是重新绑定。在构造函数中执行一次,您将被设置为在任何地方使用该函数:

constructor (props) {
    super(props);
    this.state = {
        elapsed : 0,
        timer : 0,
        isStart : false
    }

    this.onStartClick = this.onStartClick.bind(this)
    this.onResetClick = this.onResetClick.bind(this)
}
要全面了解这里发生的事情,请阅读以下内容:


了解这个是如何工作的对于react和所有javascript编程来说都是至关重要的。

谢谢,伙计,这对我来说很有用。。