1
私の上位目標は、テキストファイルからReactを使用して作成しているページにデータを読み込むことです。Populate非同期関数からプロットオブジェクトを返す
私はパスして、ファイルを読み取るために使用しているユーティリティスクリプトファイルがありますので、私の1にコンポーネントファイルを反応させるのと同様に、私はその関数を呼んでいる
//reader.js
window.readFile = function(filePath, callback) {
var request = new XMLHttpRequest();
request.open("GET", filePath, true);
request.send(null);
request.onreadystatechange = function() {
if (request.readyState === 4 && request.status === 200) {
var type = request.getResponseHeader('Content-Type');
if (type.indexOf("text") !== 1) {
callback(null, request.responseText);
}
}
}
}
を:
//component.js
var data = {};
populateData();
function populateData() {
data.subject = "FILE TITLE";
data.title = "FILE SUBJECT";
window.readFile("../path/to/file", function(error, results){
if (!error) {
data.content = results;
}
else {
console.log(error);
}
});
}
var Content = React.createClass({
render: function() {
return (
<FileContent { ...data } />
);
}
});
私は関数がこのコンテキストから正しく実行されることをテストしましたが、readFile関数の非同期性のために、データオブジェクトのコンテンツフィールドにはファイルのテキストが入力されないように見えます。私が必要とするものを同期的に返す方法はありますか、またはこれをどのように非同期的に解決できますか?
おかげで、あなたの例では完璧に働きました。 Componentクラスの基礎となる機能についてもう少し読まなければならないようです。 – chrisl0lz