【发布时间】:2017-04-27 07:17:45
【问题描述】:
我是 React 的新用户,我尝试通过容器组件和道具将修改从我的 redux 存储分派到我的组件中。 我的问题是最后,数据没有更新。我进行了测试,发现在 Board 组件中,我得到了正确的编辑状态(我在 this.state.mlodules[1].name 中编辑了模块的名称),但未发送此值在 Bloc 组件中。这是我的 Board 组件的渲染功能:
render() {
const modules = this.state.modules.map((module) => (
<Draggable key={module._id} x={module.position.x} y={module.position.y} inside={this.state.inside}>
<Bloc module={module} editModule={this.props.onModuleEdited(module._id)}/>
</Draggable>
));
return (
<div className="board"
onMouseLeave={this.mouseLeave}
onMouseEnter={this.mouseEnter}>
{modules}
</div>
);
}
这是我的 Bloc 组件的渲染函数(我使用的是 BlueprintJS 可编辑文本):
render() {
return (
<div className="pt-card pt-elevation-3 bloc">
<span onMouseDown={this.preventDrag}>
<EditableText
className="name"
defaultValue={this.props.module.name}
onChange={this.nameChanged}
/>
</span>
</div>
);
}
有什么想法吗? 谢谢!
【问题讨论】:
-
如何为
<EditableText />赋值?看来你只是传递了一个defaultValue而this.nameChanged是做什么的?