我正在嘗試創建一個可重複使用的「標記」React組件,以便用戶可以在onclick上創建標記並查看顯示在DOM中的信息。在具有不同道具的容器中多次渲染組件?
這裏的模塊:
module.exports = React.createClass({
render: function() {
return (
<div className="language chip" data-lang={this.props.language} data-lang-level={this.props.level}>
{this.props.language} ({this.props.level})
<i className="material-icons">close</i>
</div>
);
}
});
並將OnClick呼叫:
var addLanguage = $('a#add-language');
addLanguage.click(function() {
var languageLearning = $('#language-learning');
var levelLearning = $('#language-level');
if (languageLearning != null && levelLearning != null) {
ReactDOM.render(
<LanguageChip
language={languageLearning.val()}
level={levelLearning.val()}
/>,
document.getElementById('language-chips')
);
languageLearning.select2('val', '');
levelLearning.select2('val', '');
}
})
我並沒有意識到,使用React.DOM時,「任何現有的DOM元素裏面首先調用時更換「。這意味着當添加第二個芯片時,第一個被移除。我希望用戶能夠擁有多個芯片。
我該怎麼做?
謝謝,這太棒了!我不想通過一個表單來完成,因爲我使用的區域實際上已經在一個表單中,所以我得到了嵌套的表單問題。任何建議在表單外執行此操作? –
我編輯了我的答案。您只需使用按鈕的單擊事件而不是表單的提交事件。 但是,如果它是在一個窗體內,我想你會想提交標籤的形式不是? – Snahedis
是的,我需要提交標籤,但通過JSON具有非常特殊的結構,所以不用擔心。謝謝! –