【发布时间】:2015-06-13 22:29:34
【问题描述】:
我的代码目前正在直接访问 React 组件,并收到一条警告说“你可能不想这样做”。代码是:
var description = document.getElementById('description').value;
console.log(description);
new_child.setState({
description: description
});
它试图访问的组件是:
var that = this;
return (
<table>
<tbody>
{that.state.children}
</tbody>
<tfoot>
<td>
<textarea className="description"
placeholder=" Your next task..."
onChange={that.onChange}
name="description"
id="description"></textarea><br />
<button onClick={that.handleClick}
id="save-todo">Save</button>
</td>
</tfoot>
</table>
);
用“thinking in React”替换我这里的代码的惯用方法是什么?
【问题讨论】:
-
第一个代码块在哪里运行?是否在组件的
render方法中? -
第一个代码在 handleClick() 方法中。第二个是在 render() 方法本身。我怀疑我正在做框架想做的事情。
-
您可以发布您的完整组件而不是 sn-ps(当然,去掉不相关的部分)?这会让我们更好地了解你在做什么以及如何做到“Reacty”(此外,这段代码不需要 that=this 重新绑定。也许完整的代码需要,但实际上,React 会确保绑定“正常工作”,以便您可以使用
this) -
面包屑注释:我有一个持续构建集成工具,它掩盖了我的 JSX 源代码的改进/改进效果/进一步开发。
标签: javascript reactjs idioms