¿Hay alguna manera de filtrar una lista (ordenar) en función de los parámetros dados en React.JS?

Como otros ya mencionaron: no es React lo que filtra u ordena la lista, es JavaScript. Puede hacerlo con funcionalidades incorporadas de JavaScript como filtros o bibliotecas de utilidades como lodash o ramda.

Pero para darle una breve explicación de cómo funcionaría una funcionalidad de filtro en una aplicación React simple, tendría su lista de compañías en el estado de su componente y la representaría utilizando el mapa de funcionalidad incorporado de JavaScript.

empresas const = [
{nombre: ‘foo’, activo: verdadero, tecnología: falso,},
{nombre: ‘bar’, activo: falso, tecnología: verdadero,},
{nombre: ‘xyz’, activo: verdadero, tecnología: verdadero,},
];

La aplicación de clase extiende React.Component {
constructor (accesorios) {
super (accesorios);

this.state = {
lista: empresas,
};
}

render () {
const {list} = this.state;
regreso (

{list.map (company =>

{company.name}

)}

);
}
}

Supongamos que desea filtrar las empresas por su estado activo o tecnológico. Podría definir dos funciones de filtro en un objeto que devuelva cada una de las listas filtradas:

const COMPANY_FILTERS = {
‘BY_ACTIVE’: empresa => empresa.activo,
‘BY_TECH’: empresa => empresa.tech,
};

Ahora puede activar cada uno de esos en un botón en su método de renderizado. Además, la clave de propiedad se guardará en el estado local del componente. Según la clave de propiedad, la función de filtro se utiliza para filtrar la lista de elementos. Se establece un filtro predeterminado en el estado inicial:

La aplicación de clase extiende React.Component {
constructor (accesorios) {
super (accesorios);

this.state = {
lista: empresas,
filterKey: ‘BY_ACTIVE’,
};
}

render () {
const {list, filterKey} = this.state;
const filterList = list.filter (COMPANY_FILTERS [filterKey]);
regreso (

{filterList.map (company =>

{company.name}

)}
<botón
tipo = “botón”
onClick = {() => this.setState ({filterKey: ‘BY_ACTIVE’})}
> Por activo
<botón
tipo = “botón”
onClick = {() => this.setState ({filterKey: ‘BY_TECH’})}
> Por tecnología

);
}
}

Puedes jugar con él en este JS Bin. Sin embargo, usa JavaScript ES6. Si desea obtener más información sobre las funcionalidades utilizadas en React, puede leer el libro de código abierto El camino para aprender React.

React es solo un marco visual, por lo que en realidad filtraría la lista (llamada “Array” en Javascript) en Javascript puro, y hay funciones integradas (Array.filter de Javascript) y otras bibliotecas más potentes (por ejemplo, lodash _. filtro) que puede hacer eso. Esta es una publicación de Stack Overflow bastante decente que cubre eso. Como referencia, lo más probable es que se refiera a una “matriz de objetos”.

Después de eso, necesitaría representar esa lista en HTML / Javascript en React, que es una pregunta completamente diferente. Dado que parecería no saber la diferencia, recomendaría un tutorial de propósito general. Algunos de los tutoriales en PluralSight son realmente bastante buenos. Incluso el tutorial básico en el sitio web oficial de React cubrirá la representación de una lista.

Tenga en cuenta que se utilizan muchas sintaxis diferentes para React (ES5, ES6, diferentes polyfills) ya que es un marco mucho más flexible y básico que requiere muchas extensiones, por lo que si hace esto para la tarea / práctica / proyecto existente que tiene algunas prácticas de codificación establecidas, asegúrese de seguir la sintaxis / estándar correcta o de lo contrario no funcionará.

Es el trabajo de JavaScript, no Reaccionar.