我想围绕React
环绕我的头。我的要求是有两个组件,它们都以两种不同的方式显示相同的JSON数据。我想调用一个Web API 2
方法,该方法将返回一个JSON结果,并在保存数据的变量发生变化时立即重新渲染组件。由于这两个组件需要反映相同的数据,因此我不想让$.ajax
调用两次。我做了一个小测试组件来模拟这个过程的一部分,我无法弄清楚。更新组件的外部属性
我有以下jsx
代码:
var Data = {text: "Some Text..."};
var TestComponent = React.createClass({
render: function() {
return (
<div className="testComponent">
Hello, world! I am a TestComponent. {this.props.data.text}
</div>
);
},
updateData: function() {
this.setProps({data: Data});
}
});
React.renderComponent(
<TestComponent data={Data} />,
document.getElementById('content')
);
setInterval(function() {
Data = {text: "Some other text..."};
}, 1000);
在setInterval
方法我都试过直接使用这两种TestComponent.setProps({data: Data});
,也打过电话TestComponent.updateData();
既我得到一个undefined
错误。我也试过React.TestComponent.
,这也是undefined
。
我会认为这是一个简单的用例,但我无法在任何地方找到这个例子。我看到很多关于这样做的讨论,但没有代码示例。也许我会谈论这一切都是错误的?
您在渲染函数中的返回值是否缺少引号? – alnafie
@alnafie否,请参阅有关JSX的信息,它是带有嵌入式标记的JavaScript的扩展:http://facebook.github.io/react/docs/jsx-in-depth.html。 –