Javascript 如何以正确的方式创建此反应模式?

Javascript 如何以正确的方式创建此反应模式?,javascript,meteor,reactjs,react-bootstrap,Javascript,Meteor,Reactjs,React Bootstrap,我一直在开发我的第一个Meteor应用程序,有点卡住了。我想按照最新的指导原则(ES6和React 15)创建代码,但我对Javascript中最近的所有更改感到困惑 我想在我当前的评论列表中添加一个引导模式,但似乎不知道如何使用正确的最新语法将我的内容添加到模式中 这是我目前的代码: 在comment.js中: 从“React”导入React; 从“react bootstrap”导入{Row,Col,ListGroupItem,FormControl,Button}; 从'meteor/t

我一直在开发我的第一个Meteor应用程序,有点卡住了。我想按照最新的指导原则(ES6和React 15)创建代码,但我对Javascript中最近的所有更改感到困惑

我想在我当前的评论列表中添加一个引导模式,但似乎不知道如何使用正确的最新语法将我的内容添加到模式中

这是我目前的代码:

在comment.js中:

从“React”导入React;
从“react bootstrap”导入{Row,Col,ListGroupItem,FormControl,Button};
从'meteor/themeteorchef:Bert'导入{Bert};
从“/comments model”导入{CommentsModal}
导出常量注释=({Comment})=>(
删除评论

);将道具中的数据传递到CommentsDal,并按正常方式呈现。

将道具中的数据传递到CommentsDal,并按正常方式呈现。

如果可能,我尝试在使用redux时将本地状态排除在组件之外,以便回答您关于使其无状态的问题,我将采取以下步骤:

  • 从modal.js中删除打开模态的按钮
  • 从modal.js中删除实际模态,只需将模态内容放在其中
  • 将“打开模式”按钮更改为钩住一个动作创建者,该动作创建者设置一个道具以打开模式并传递其内容(同时设置一个道具以关闭模式)
看起来是这样的

 <ListGroupItem key={ comment._id }>
<Row>
  <Col xs={ 8 } sm={ 10 }>
    <FormControl
      type="text"
      defaultValue={ comment.title }
    />
  </Col>
  <Col xs={ 4 } sm={ 2 }>
    <Button
      bsStyle="danger"
      className="btn-block">
      Remove Comment
    </Button>
  </Col>
</Row>

<!-- Here is where it changes, -->
 <Button
      bsStyle="primary"
      bsSize="large"
      onClick={this.props.openModal(comment)}
    >
    </Button>

    <Modal show={this.props.commentModal} onHide={this.props.closeModal}>
       <CommentsModal content={this.props.commentModal} />
    </Modal>
关闭按钮触发
onHide
,该按钮链接到
this.props.closeModal
操作,该操作仅执行以下操作:

case actions.OPEN_COMMENT_MODAL:
       return state.set('commentModal', undefined);
因此,这允许您只使用一个模态实例,并通过该按钮将当前注释传递给它,然后单击并打开它。show只是检查truthy值,因此您将其设置回undefined,它将隐藏自己


然后我将
content
的道具传递给模态,这样您就可以在模态内部使用它了。同样,请将名称更改为最适合您的名称。

如果可能,在使用redux时,我会尝试将本地状态排除在组件之外,因此为了回答您关于使其无状态的问题,我将采取以下步骤:

  • 从modal.js中删除打开模态的按钮
  • 从modal.js中删除实际模态,只需将模态内容放在其中
  • 将“打开模式”按钮更改为钩住一个动作创建者,该动作创建者设置一个道具以打开模式并传递其内容(同时设置一个道具以关闭模式)
看起来是这样的

 <ListGroupItem key={ comment._id }>
<Row>
  <Col xs={ 8 } sm={ 10 }>
    <FormControl
      type="text"
      defaultValue={ comment.title }
    />
  </Col>
  <Col xs={ 4 } sm={ 2 }>
    <Button
      bsStyle="danger"
      className="btn-block">
      Remove Comment
    </Button>
  </Col>
</Row>

<!-- Here is where it changes, -->
 <Button
      bsStyle="primary"
      bsSize="large"
      onClick={this.props.openModal(comment)}
    >
    </Button>

    <Modal show={this.props.commentModal} onHide={this.props.closeModal}>
       <CommentsModal content={this.props.commentModal} />
    </Modal>
关闭按钮触发
onHide
,该按钮链接到
this.props.closeModal
操作,该操作仅执行以下操作:

case actions.OPEN_COMMENT_MODAL:
       return state.set('commentModal', undefined);
因此,这允许您只使用一个模态实例,并通过该按钮将当前注释传递给它,然后单击并打开它。show只是检查truthy值,因此您将其设置回undefined,它将隐藏自己


然后我将
content
的道具传递给模态,这样您就可以在模态内部使用它了。同样,将名称更改为最适合您的名称。

将这两个名称合并为一个名称的最佳方法是什么?如果我理解正确,您希望在模态体中显示CommentList?它是否给出任何错误?如果有,你会给我们看吗?“我想在里面显示数据,我不能让它工作”什么数据,从哪里来,应该在哪里呈现?除了模式中的
文本之外,模式代码不会呈现任何内容???我看到
注释列表
应该是传递注释的,所以我假设这就是您所说的,但您没有在模式中使用它?你能澄清一下这里到底出了什么问题吗?很抱歉没有用正确的方式提出我的问题,谢谢你指出这一点。因此,我实际上成功地获得了模态中我想要的数据。我只需要将变量传递到,但我忘记了。现在让我重新构造我的问题,是否可以重新格式化我的Comments-modal.js,使它也成为一个无状态的功能组件?如果是的话,最好的方法是什么。“这个”总是把我搞糊涂。“把这两者结合在一起最好的方法是什么?”把这两者结合在一起?如果我理解正确,您希望在模态体中显示CommentList?它是否给出任何错误?如果有,你会给我们看吗?“我想在里面显示数据,我不能让它工作”什么数据,从哪里来,应该在哪里呈现?除了模式中的
文本之外,模式代码不会呈现任何内容???我看到
注释列表
应该是传递注释的,所以我假设这就是您所说的,但您没有在模式中使用它?你能澄清一下这里到底出了什么问题吗?很抱歉没有用正确的方式提出我的问题,谢谢你指出这一点。因此,我实际上成功地获得了模态中我想要的数据。我只需要将变量传递到,但我忘记了。现在让我重新构造我的问题,是否可以重新格式化我的Comments-modal.js,使它也成为一个无状态的功能组件?如果是的话,最好的方法是什么。“这个”一直把我搞得一团糟。事实上,这个我忘了。谢谢你,我忘了。谢谢你的精彩解释,我要试一试@Deelux很棒,如果你有任何问题,请告诉我。谢谢你的解释,我将尝试一下@迪勒克斯:太好了,如果你有任何问题,请告诉我。