In AngularJS können Sie "Filter" verwenden, um die Ergebnisse einer ng-repeat wie so zu verengen:In ReactJS gibt es eine Möglichkeit, gerenderte Ergebnisse zu filtern, die über iteriert werden?
<div ng-repeat="item in items | filter: x">
Derzeit bin ich mit Array.map() mehr Elemente in einem Array in ReactJS zu machen und ich frage mich, wie genau die Funktionalität von Angulars ng-repeat-Filter in ReactJS repliziert werden kann.
Dies ist meine aktuelle Methode, die ich ein paar Blog-Posts machen bin mit:
renderBlogs() {
return this.props.blogs.map((blog) => {
return (
<div key={blog.id}>
<Link to={`blogs/${blog.id}`}>
<img src={blog.image_url} />
<h1>Author</h1>
<p>{blog.author}</p>
<h1>Title</h1>
<p>{blog.topic}</p>
</Link>
</div>
)
})
}
Im Hoffnung, nur ein Eingabefeld hat, das die Ergebnisse meiner Iteration filtert, wenn das Eingabefeld ändert. Gibt es NPM-Module, die dabei helfen könnten oder ein typischer Ansatz zur Lösung dieses Problems?
Dank
Map gibt Ihnen eine Funktion pro Eintrag, so dass Sie leicht eine Logik in den Callback einfügen können, um das Element nur zurückzugeben, wenn es Ihre Bedingung erfüllt, oder verwenden Sie _.filter. – lux
Im Gegensatz zu anderen Frameworks, die unbenannt bleiben sollen, empfiehlt React, JavaScript zu verwenden. Sie sollten in Erwägung ziehen, die Standardbibliothek von JS zu erlernen, insbesondere [Array.prototype.filter] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/filter), die werde (halb) was du willst hier machen. Es gibt absolut keinen Grund, eine weitere Bibliothek in den Mix aufzunehmen. 'lodash.filter' wäre in Ordnung, aber nur, wenn Ihre Eingabe' Objekt | ist Array' anstatt ein Array zu sein. Sie wissen, dass dieses Objekt ein Array ist; keine Notwendigkeit, lodash zu erreichen. –