Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

212
Visualizações
¿Cómo agregar dinámicamente isFixed si la longitud de los elementos es una en reaccionar-seleccionar?

Quiero hacer un filtro múltiple para que el usuario pueda eliminar cualquiera de los elementos hasta que la longitud de los elementos sea uno. Quiero agregar isFixed = true en el objeto dinámicamente cuando el usuario elimine 2 de 3 elementos para este ejemplo a continuación.

 import React, { useState } from 'react'; import Select from 'react-select'; const options = [ { value: 'apple', label: 'Apple' }, { value: 'orange', label: 'Orange' }, { value: 'grape', label: 'Grape' }, ]; const orderOptions = (values) => values && values.filter((v) => v.isFixed).concat(values.filter((v) => !v.isFixed)); export default function TestSelect() { const [value, setValue] = useState(orderOptions([...options])); console.log('value', value); const onChange = (value, { action, removedValue }) => { switch (action) { case 'remove-value': case 'pop-value': if (removedValue.isFixed) { return; } break; case 'clear': value = options.filter((v) => v.isFixed); break; default: break; } value = orderOptions(value); setValue(value); }; return ( <div> <Select value={value} isMulti isClearable={value && value.some((v) => !v.isFixed)} name="fruit" classNamePrefix="select" onChange={onChange} options={options} defaultValue={options} /> </div> ); }
about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Solo tiene que verificar si solo queda un elemento en la matriz de valores dentro del caso del interruptor. Para hacerlo, simplemente agregue dos líneas:

 ... const onChange = (value, { action, removedValue }) => { switch (action) { case "remove-value": case "pop-value": if (removedValue.isFixed) return; if (value.length === 1) value[0].isFixed = true; // <-- add the isFixed element break; case "clear": value = options.filter((v) => v.isFixed); break; default: value.forEach(x => x.isFixed = false) // <-- remove the isFixed element break; } value = orderOptions(value); setValue(value); }; ...

Recuerda agregar la parte de styles para que sea más visual. Como puedes ver aquí .

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda