Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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 使用getter在React组件中呈现另一个组件是一种好的做法吗?_Javascript_Reactjs_Getter_React Component - Fatal编程技术网

Javascript 使用getter在React组件中呈现另一个组件是一种好的做法吗?

Javascript 使用getter在React组件中呈现另一个组件是一种好的做法吗?,javascript,reactjs,getter,react-component,Javascript,Reactjs,Getter,React Component,在某些情况下,getter方法变得很方便。但是使用getter方法来呈现React组件或整个DOM呢?为此,使用经典方法而不是getter不是更好吗?为什么呢 我有一种感觉,在这件事上有些不好,但我也知道这件事可能是关于作者的感觉 所以问题是,总的来说,这是一个好方法吗?或者你的偏好是什么 class Attachment extends React.Component { get file() { return this.props.fields.File; } get

在某些情况下,getter方法变得很方便。但是使用getter方法来呈现React组件或整个DOM呢?为此,使用经典方法而不是getter不是更好吗?为什么呢

我有一种感觉,在这件事上有些不好,但我也知道这件事可能是关于作者的感觉

所以问题是,总的来说,这是一个好方法吗?或者你的偏好是什么

class Attachment extends React.Component {

  get file() {
    return this.props.fields.File;
  }
  get label() {
    return this.props.fields.Label;
  }

  // I'm asking about these 2 getters below this comment

  get editableAttachment() {
    return <SomeComponent field={this.label} />;
  }

  get attachment() {
    return (
      <a
        href={this.file && this.file.value && this.file.value.src}
        target="_blank"
      >
        {(this.label && this.label.value)}
      </a>
    );
  }

  render() {
    return (
      <div className="ui-some-component">
        {this.props.isPageEditing ? this.editableAttachment : this.attachment}
      </div>
    );
  }
}

类附件扩展了React.Component{
获取文件(){
返回此.props.fields.File;
}
获取标签(){
返回此.props.fields.Label;
}
//我在这条评论下面询问这两位获得者
获取editableAttachment(){
返回;
}
获取附件(){
返回(
);
}
render(){
返回(
{this.props.isPageEditing?this.editableAttachment:this.attachment}
);
}
}

提前谢谢。

这非常符合消费者的口味,我相信如果你不引入野蛮行为,任何代码都是好的

同样,代码越容易理解越好。对于不知道我的代码的人,我会尽量使代码简单易读

另一方面,我尝试使组件尽可能简单和具有代表性

也许这是您自己使用“我的风格指南”的代码示例:

const附件=({isPageEditing,fields})=>{
const{file,label}=字段;
const attachment=isPageEditing(
) : (
);
返回{附件};
};
我希望我帮助了你,
最好的

我认为这取决于偏好。与更基本的
渲染相比,如果x执行此操作,如果y执行此操作,则延迟计算不会有任何好处--两者都必须执行此工作

我的两分钱是为了让组件简单易读。针对每种情况跳转一个类会使下一个开发人员更加困难。

“或者您的首选项是什么?”您说。答案是:这取决于你自己的喜好。
const Attachment = ({ isPageEditing, fields }) => {
  const { file, label } = fields;

  const attachment = isPageEditing ? (
    <SomeComponent field={fields.label} />
  ) : (
    <a href={file && file.value && file.value.src} target="_blank">
      {label && label.value}
    </a>
  );

  return <div className="ui-some-component">{attachment}</div>;
};