Reactjs 为什么调用useState函数时没有声明它?

Reactjs 为什么调用useState函数时没有声明它?,reactjs,ecmascript-6,react-hooks,Reactjs,Ecmascript 6,React Hooks,我正在努力理解下面示例中调用setCount函数的语法。setCount函数从未声明过,那么为什么在这里调用它 3: function Example() { 4: const [count, setCount] = useState(0); 5: 6: return ( 9: <button onClick={() => setCount(count + 1)}> 10: Click me 11: </

我正在努力理解下面示例中调用setCount函数的语法。setCount函数从未声明过,那么为什么在这里调用它

 3:  function Example() {
 4:    const [count, setCount] = useState(0);
 5:
 6:    return (
 9:        <button onClick={() => setCount(count + 1)}>
10:         Click me
11:        </button>
13:    );
14:  }
3:函数示例(){
4:const[count,setCount]=useState(0);
5:
6:返回(
9:setCount(计数+1)}>
10:点击我
11:        
13:    );
14:  }

setCount函数是在此行中声明的

const [count, setCount] = useState(0);
这就是useState的语法:数组的第一个元素是状态变量,第二个元素是为状态变量设置值的函数。
希望它是清楚的。

这种模式被称为解构。 useState钩子返回一个值的元组和一个函数来改变该值,在分解useState的返回元组时声明这些返回元素的名称。 您可以查看以下说明:

useState()
返回一对值:一个状态和一个更新状态的函数

 const [count, setCount] = useState(0);
所以count是state,setCount是更新它的函数
useState
已经为您准备好了更新状态的函数。您无需显式编写它

setCount(modifiedValue)
将计数设置为修改后的值

示例代码:

UseState不会完全这样做,但这是为了理解

const useState=()=>{
返回[“createdReactState”,(值)=>{
//react修改状态的内部代码“
log(“我在这里修改状态”,值)
}]
}
//破坏分配
const[count,setCount]=useState()

setCount(2);
What?!声明了setCount函数,它是第4行useState返回的值之一。您的标题询问调用useState,您可能是通过react的导入声明的。是的,我不明白为什么返回“setCount”“它的参数是否自动放在括号中?直觉上我会这样写:()=>setCount(counter){(counter+1)return counter};这是:()=>setCount(count+1);一条捷径?@coasterrel你凭直觉写的东西毫无意义。您正在尝试声明另一个名为setCount的函数吗?在尝试添加React之前,您应该真正了解基本的JavaScript和ES6语法。@jonrsharpe虽然是真的,但注释可能没有您预期的那么有用。如果有人不知道他们不知道的东西,而我删除了我对第二个问题的回答,因为@jonrsharpe一次只强制执行一个问题-如果有人想要其他问题的答案,请通知我。是的。我不明白为什么“setCount”的返回会自动将其参数放在括号中?直觉上我会这样写:()=>setCount(counter){(counter+1)return counter};这是:()=>setCount(count+1);快捷方式?useState的简单实现是这样的:函数useState(initialState){let state=initialState;函数setState(newState){state=newState;}返回[state,setState];}这就是为什么变异函数是这样工作的。