【问题标题】:React.js Sorting asc and desc in same buttonReact.js 在同一个按钮中排序 asc 和 desc
【发布时间】:2021-03-30 18:50:21
【问题描述】:

嗨,我做了一个排序功能,我定义了我的 data.map 的默认排序是 asc 并且在我的按钮中我更改为 desc 所以我的问题是我如何在按钮上同时执行 asc 和 desc

function AvailableVet() {
const [vets, setVets] = useState([]);
const  [sortType,setSorted] = useState('asc');
const sorted = vets.sort((a,b)=>{
    const isReversed = (sortType ==='asc') ? 1 : -1;
    return isReversed * a.name.localeCompare(b.name)
})
const onSort = sortType =>{
    setSorted({sortType})
    
}

<React.Fragment>
        <div className='title'>
            <h5 style={{ marginBottom: '20px' }}>
                {vets.length} médicos vetenários disponíveis
            </h5>
             <Button  align='left' className='text-field' placeholder='Ordenar'   onClick={()=>onSort('desc')}  endIcon={<UnfoldMoreSharpIcon></UnfoldMoreSharpIcon>}>Ordenar</Button>
        </div>
        <div>
            {sorted.map((data) => (
                <ObterMedicos
                    key={data.user_id}
                    id={data.user_id}
                    name={data.name}
                    specialty={data.specialty}
                />
            ))}
        </div>
    </React.Fragment>

【问题讨论】:

    标签: reactjs sorting


    【解决方案1】:

    试试这个片段。

    const onSort = () => {
      const sortOrder = sortType === 'asc' ? 'desc' : 'asc';
      setSorted(sortOrder);
    }
    

    然后不需要将参数传递给onSort

    onClick={onSort}

    【讨论】:

    • 我的荣幸。请接受答案。谢谢。
    猜你喜欢
    • 2014-07-11
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-04
    相关资源
    最近更新 更多