Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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/2/unit-testing/4.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组件中放入常量,包装在recompose中_Javascript_Reactjs_Static - Fatal编程技术网

Javascript 如何在React组件中放入常量,包装在recompose中

Javascript 如何在React组件中放入常量,包装在recompose中,javascript,reactjs,static,Javascript,Reactjs,Static,如何编写特定于组件的常量STATUS,您可以将其设置为this.state.STATUS?我认为问题在于这一背景。如果this.STATUS是以字符串形式硬编码的,则它可以工作 import { compose } from 'recompose'; import React, { Component } from 'react'; class TestComponent extends Component { static propTypes = {}; // can yo

如何编写特定于组件的常量STATUS,您可以将其设置为this.state.STATUS?我认为问题在于这一背景。如果
this.STATUS
是以字符串形式硬编码的,则它可以工作

import { compose } from 'recompose';
import React, { Component } from 'react';

class TestComponent extends Component {
    static propTypes = {};

    // can you put the STATUS constant on the component?
    static STATUS = {
        SENT: 'SENT',
        ERROR: 'ERROR',
    };

    state = { status: null };

    // functions cannot use this.STATUS
    f = () => {
        this.setState({status: this.STATUS.SENT});
        // undefined is not an object (evaluating '_this.STATUS.SENT')
    }

    render() {
        const { msg } = this.statusMessage();
        return ();
    }

}

export default compose(
  withRouter,
  connect(() => ())
)(TestComponent);

由于
状态
是类的一个属性,因此必须按如下方式访问它:

this.constructor.STATUS.SENT
如果将其声明为实例的属性,则可以通过
this.status
访问它:

STATUS = {
  SENT: 'SENT',
  ERROR: 'ERROR',
};
或通过:


由于
状态
是类的一个属性,因此必须按如下方式访问它:

this.constructor.STATUS.SENT
如果将其声明为实例的属性,则可以通过
this.status
访问它:

STATUS = {
  SENT: 'SENT',
  ERROR: 'ERROR',
};
或通过:


为什么不直接将
SENT
Error
设置到您的状态

像这样:

this.setState({
 SEND: 'SENT'
 ERROR: 'ERROR'
 status: null
});
f = () => {
    const { SENT } = this.state
    this.setState({status: SENT});
}
在您直接这样设置您的状态之后:

this.setState({
 SEND: 'SENT'
 ERROR: 'ERROR'
 status: null
});
f = () => {
    const { SENT } = this.state
    this.setState({status: SENT});
}

干杯

为什么不直接将
发送
错误
设置到您的状态

像这样:

this.setState({
 SEND: 'SENT'
 ERROR: 'ERROR'
 status: null
});
f = () => {
    const { SENT } = this.state
    this.setState({status: SENT});
}
在您直接这样设置您的状态之后:

this.setState({
 SEND: 'SENT'
 ERROR: 'ERROR'
 status: null
});
f = () => {
    const { SENT } = this.state
    this.setState({status: SENT});
}
干杯