Intentando crear un filtro que devolverá artículos dependiendo de alguna propiedad (inStock en este caso)
No obtengo ningún artículo cuando trato de configurar el filtro para filtrar solo los artículos que tienen verdadero en su propiedad inStock, en absoluto.
cuando la disponibilidad de console.log: obtengo el booleano adecuado que configuré en el filtro (verdadero/falso) y cuando consola.log los elementos inStock, todos devuelven verdadero (lo cual está bien, es lo que configuré).
Intenté establecer el valor en el componente de filtro como una cadena, pero todavía no funcionó.
agradecería mucho su ayuda con esto
juguete.servicio.js
function query(filterBy) { return storageService.query(STORAGE_KEY).then((toys) => _filteredToys(toys, filterBy)); } function _filteredToys(toys, filterBy) { const { txt, availability } = filterBy; const filteredtoys = toys.filter((toy) => { console.log(availability); console.log(toy.inStock); return toy.inStock === availability; }); return Promise.resolve(filteredtoys); }el componente de filtro de juguete
import React from 'react'; export class ToyFilter extends React.Component { state = { filterBy: { availability: '', txt: '', }, }; handleChange = ({ target }) => { const { name, value } = target; this.setState( (prevState) => ({ filterBy: { ...prevState.filterBy, [name]: value } }), () => { this.props.onSetFilter(this.state.filterBy); } ); }; render() { const { txt } = this.state.filterBy; return ( <section> <select name='availability' onChange={this.handleChange}> <option value='' key='filter-all'> All </option> <option value={true} key='filter-in-stock'> in stock </option> <option value={false} key='filter-sold-out'> sold out </option> </select> <input type='text' name='txt' value={txt} onChange={this.handleChange} placeholder='Search toy...' /> </section> ); } }La forma en que está configurando la availability en el estado, siempre será una cadena. Tan true en la salida de la consola no es un valor booleano sino una cadena. Verifique el tipo de datos de disponibilidad usando typeof availability . Supongo que la comparación return toy.inStock === availability está fallando porque inStock es bool mientras que la disponibilidad es string .