【发布时间】:2018-01-26 19:37:08
【问题描述】:
我想在 isEditingAll 设置为 true 时将 jsx 呈现为一个输入字段,其中父组件可以将其设置为 true。但我也希望组件本身能够单独保存数据。所以当 isEditing 为真时,我也在渲染相同的输入字段。我有以下代码:
return(
<span className="displayList ">
<div className="flex-label"><label className="flex-label-size">Author: </label>
{this.state.isEditingAll ?
<span className="flex-label-size"><input name="inputValue" className="inputValue" value={this.state.value} type="text" onKeyPress={this.handleKeyPress} onChange={this.onTextChanged}/></span>
:
this.state.isEditing ? '' : <span className="clickMe flex-label-size" onClick={this.onClickEdit}>{this.state.value}</span> &&
this.state.isEditing ? <span className="flex-label-size"><input name="inputValue" className="inputValue" value={this.state.value} type="text" onKeyPress={this.handleKeyPress} onChange={this.onTextChanged}/></span> : ''&&
this.state.isEditing ? <button className="saveMe" onClick={this.onSaveEdit}>Save</button> :''
}
</div>
</span>
)
我的输入字段被重复了两次,无论如何要在 return 之外使用 const 来传递输入以多次使用它并且只使用一次 jsx?
【问题讨论】:
-
您能否更好地阐明您希望为
isEditingAll和isEditing的每个组合分别显示的内容是:(1)true和true,(2)true和false,(3)false和true,(4)false和false。
标签: reactjs react-redux