Я пытаюсь создать повторно используемый компонент «tag» 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 с очень конкретной структурой, поэтому не беспокойтесь. Благодаря! –