我正在使用基於地圖的應用程序,該應用程序使用Google Map API在React.js中創建標記及其信息窗口。 infowindow.setContent()
只接受String
或HTML
。我不可能通過String
,因爲我有一個button
鏈接到另一個反應組件中的特定方法(如:_this.props.addList(place)
)。因此,我必須填寫的參數作爲HTML DOM爲下面的代碼行:React.js:是否可以將反應組件轉換爲HTML DOM?
var div = document.createElement('div');
var title = document.createElement('h4');
title.innerHTML = place.name;
var btn = document.createElement('button');
btn.className = 'btn btn-danger btn-block';
btn.appendChild(document.createTextNode('I want to go here !!'));
div.appendChild(title).appendChild(btn);
google.maps.event.addListener(marker, 'click', function() {
infowindow.setContent(div);
infowindow.open(map, this);
});
btn.addEventListener('click', function() {
_this.props.addList(place);
});
的代碼爲我工作,但一個我不想創建元素之一。我也試圖通過與陣營成分的說法,但似乎不工作:
所以是有另一種方式來至少轉換反應成分爲HTML,讓我不要不必一一寫下document.createElement()
?
感謝
我收到以下錯誤:「未捕獲的錯誤:不變衝突:React.render():無效的組件元素。」當應用您的解決方案 –
得到了解決方案,對不起。這是因爲代碼在創建元素之前運行React.remder()。這裏是解決方案:var div = document.createElement('div'); \t \t \t的setInterval(函數(){ \t \t \t \t如果(DIV) \t \t \t \t \t clearInterval(); \t \t \t},5); \t \t \t React.render(_this._renderInfoWindow(place),div); –
不會'_this'出現在沒有'var'的全局範圍之前嗎?這是打算嗎? – wprl