React中的组件是否应该知道从Store

时间:2015-08-05 09:48:11

标签: reactjs flux

嗨,我对React和Flux很陌生,他们的工作非常迷人并且非常轻松我的工作,但现在我有这个问题困扰了我很长一段时间,说我有一个文件名列表可以在州内变灰不可用。

我已经通过阅读'可用'子组件内的属性:

{fileA : { available : true }, fileB : { available : false } } //data get from the Store

但我对此非常不舒服,因为它使我的组件假定数据类型作为回报(应该有一个值是一个对象类型,它有一个'可用的'字段)

还有其他方法可以通过更加分离的方式实现这一目标,还是我不必担心?

2 个答案:

答案 0 :(得分:1)

在我看来,如果正确处理数据缺失,期望某些类型和属性不是一个大问题。 至于解耦,您可以创建一个组件来显示等待两个道具的单个文件名:fileName和avalable,并让父组件将这些道具传递给它的子项,例如:

var FileList = React.createClass({
    render: function(){
    return (
        this.state.files.map(function(file){
                return <FileListItem fileName={file.name} available={file.available}/>
            }, this);
        );
    }
});

在这种情况下,子组件将不知道有关对象的任何细节。

答案 1 :(得分:0)

我们总是使用PropTypes来表示我们的期望并避免错误。 此外,PropTypes很酷,因为一段时间后重新访问代码时不需要检查整个数据树。

React PropTypes