使用道具而不是状态

时间:2017-02-27 06:29:33

标签: javascript reactjs

我知道如果你想改变一个组件本身你使用状态的东西,并且当emit是外部的那么你使用props来接收它。但今天我难以理解这个例子

var Label = React.createClass({
    handleClick: function(){
        console.log("Click");
        this.props.children = "Text After Click";
        this.setState({liked: false});
    },

    render: function () {
        console.log("Render");
        return (
            <p ref="p" onClick={this.handleClick}>{this.props.children}</p>
            );
    }
});

使用道具而不是状态来更改文本按钮的值。我现在很困惑。指向来源的链接位于http://myshareoftech.com/2013/12/unit-testing-react-dot-js-with-jasmine-and-karma.html

1 个答案:

答案 0 :(得分:0)

我不知道源代码,但是当我尝试上面的代码时,它会抛出此错误:

  

未捕获的TypeError:无法分配给对象#<Object>的只读属性“子”。

它应该不起作用,因为道具的基本属性是DOC

  

道具是只读的,无论是将组件声明为函数还是类,它都不能修改自己的道具。所有React组件必须像它们的道具一样充当纯函数。

检查fiddle是否有错误:https://jsfiddle.net/pjnp6yza/

参考:https://facebook.github.io/react/docs/components-and-props.html#props-are-read-only