我想圍繞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。 –