Ich habe eine Komponente, um die Liste der Tags anzuzeigen, und der Benutzer kann Tags auswählen, um ihnen zu folgen. Wenn der Benutzer also auf ein Tag klickt, möchte ich es unter tagsSelectedList speichern und einen neuen Klassennamen hinzufügen selected_tag . Wenn das Tag jedoch bereits in tagsSelectedList vorhanden ist, entfernen Sie das Tag aus tagsSelectedList und entfernen Sie auch den Klassennamen selected_tag .Überprüfen Sie, ob ein Element im Array vorhanden ist, und entfernen Sie dieses bestimmte Element aus diesem Array.
Ich bin verwirrt, wie zu prüfen, ob das Tag-Objekt innerhalb tagSelectedList vorhanden ist und entfernen Sie dieses bestimmte Tag-Element aus der Liste. Wie mache ich das? Ihre Hilfe und Anleitung wird sehr geschätzt. Vielen Dank.
component.js:
let tags = [
{id: "1", tagName: "Arts"},
...
...
{id: "59", tagName: "Writing"}
];
var tagsSelectedList = [];
export default class SignUpSubscribeTags extends React.Component {
constructor(props){
super(props);
}
selectTag = (e) => {
// if the tag is not present in the tagsSelectedList then add the tag in the tagsSelectedList also add the tag_selected class name
var isTagPresent = tagsSelectedList.filter(function(item) {
return item.id === e.target.dataset.pk
});
if(isTagPresent) {
console.log(e.target.dataset.pk, 'present in tagsSelectedList');
}
else {
console.log(e.target.dataset.pk, 'not present in tagsSelectedList');
}
// if the tag is present in tagsSelectedList then remove the tag object from the tagsSelectedList also remove the tag_selected class name
}
render() {
let tagList = tags.map((Tag) => {
return (
<li id={Tag.tagName} class="tag" data-pk={ Tag.id } key={Tag.id} onClick={this.selectTag}>{Tag.tagName}</li>
);
});
return(
<div id="signup-process-wrapper-addTags">
<div id="add_tags">
<ul id="tag_list">
{tagList}
</ul>
</div>
</div>
);
}
}
Verwenden Sie in Ihrem Projekt undscore.js/lodash.js? –
Das könnte helfen: http://StackOverflow.com/a/2155786/3783478 – Rajesh