我有点不确定如何更改此代码以在功能组件中使用。我已经编辑了我所有的其他 setStates,但是这个有两个状态更新,然后是一个回调函数,所以我不知道如何处理这种情况。有什么想法吗?
const handleSortAlpha = () => {
setState({
sortalphaStatus: sortalphaStatus === 'A-Z' ? 'Z-A' : 'A-Z',
sorttypeStatus: 'alpha',
},
() => {
inputToOutput();
});
};
答案 0 :(得分:0)
const [alphaStatus,setalphaStatus] = useState()
const [type,settypeStatus] = useState()
和函数:
changeStates = () => {
const value = 'A-Z' ? 'Z-A' : 'A-Z'
setalphaStatus(value);
settypeStatus(alpha);
inputToOutput();
}
答案 1 :(得分:0)
然而,与类中的 this.setState 不同,更新状态变量总是替换它而不是合并它。 参考:https://reactjs.org/docs/hooks-state.html
setState(newState);
)。例如
[num, setNum] = useState();
setNum 函数只接受一个新值 setNum(5),不考虑其他参数。
setNum(5, () => console.log('potato'));
potato 永远不会登录到控制台。
import React, { useState, useEffect } from 'react';
const inputToOutput = () => null;
export const TestComponent = () => {
const [sortalphaStatus, setSortalphaStatus] = useState('A-Z');
const [sorttypeStatus, setSorttypeStatus] = useState('alpha');
const handleSortAlpha = () => {
setSortalphaStatus(sortalphaStatus === 'A-Z' ? 'Z-A' : 'A-Z');
setSorttypeStatus('alpha')
};
useEffect(() => {
inputToOutput()
}, [sortalphaStatus, sorttypeStatus])
return <div onClick={handleSortAlpha}>test</div>
};`