()
| 37 | } |
| 38 | |
| 39 | render () { |
| 40 | let { userData, delMsg } = this.props |
| 41 | let msg = this.state.msg |
| 42 | |
| 43 | return ( |
| 44 | <div className="panel panel-warning"> |
| 45 | <div className="panel-heading"> |
| 46 | 标题: |
| 47 | <strong>{ msg.title }</strong> |
| 48 | <span className="badge pull-right"> |
| 49 | { dateTimeFormatter(msg.time) } |
| 50 | </span> |
| 51 | <br/> |
| 52 | 发布者: |
| 53 | <Link to={`/msg?author=${msg.author}`}> |
| 54 | <i>{ msg.author }</i> |
| 55 | </Link> |
| 56 | |
| 57 | <OptBtnGroup |
| 58 | msgId={msg.id} |
| 59 | isAuthor={userData && userData.username === msg.author} |
| 60 | delMsg={delMsg} |
| 61 | parentName="MsgDetail"> |
| 62 | <button /* 该按钮相当于 Vue 中的 slot */ |
| 63 | className="btn btn-primary btn-xs" |
| 64 | onClick={() => this.context.router.goBack()}> |
| 65 | 返回 |
| 66 | </button> |
| 67 | </OptBtnGroup> |
| 68 | </div> |
| 69 | <div className="panel-body"> |
| 70 | { msg.content } |
| 71 | </div> |
| 72 | </div> |
| 73 | ) |
| 74 | } |
| 75 | } |
nothing calls this directly
no outgoing calls
no test coverage detected