流程-如何使用从函数获得的值设置状态?

时间:2019-01-17 00:55:02

标签: javascript reactjs flowtype

getEvaluation函数中,我得到数字1,我​​想用以下值更改状态:

type Props = {
};

type State = {
    id_evaluation: string,
};

class Evaluation extends Component < Props, State > {
    state = {
        id_evaluation: '1',
    }

    componentDidMount() {
        const id_eval = getEvaluation();

        this.setState({
            id_evaluation: id_eval,
        });

我现在检查了'console.log(typeof(id_eval)),是字符串。

流生成此错误:

  

无法调用绑定了对象常量的this.setState   partialState是因为null或undefined [1]与   字符串[2]。

3 个答案:

答案 0 :(得分:0)

这个怎么样?

state = {
  id_evaluation: 1,
};

const id_eval = getEvaluation();
this.setState({
   id_evaluation: id_eval,
});

答案 1 :(得分:0)

尝试将function PreLoadAllImages() { var images = new Array(); var numberofimages = 0, loadedimages = 0; function preload() { numberofimages = preload.arguments.length; for (i = 0; i < preload.arguments.length; i++) { images[i] = new Image(); images[i].src = preload.arguments[i]; images[i].onload = () => { loadedimages++; if(loadedimages == numberofimages){ alert("All images are loaded"); } } } } preload('Images/Image1.jpg', 'Images/Image2.jpg', ... , 'Images/Image300.jpg'); } 转换成这样的字符串。

id_eval

答案 2 :(得分:0)

getEvaluation()函数的返回值有多种情况,数字类型,空类型或未定义类型,但是您的State限制接受String类型,这是错误的在编译阶段报告,您需要转换getEvaluation()的返回值,例如使用String(id_eval)