javascript useState hooks reactJs中的用法

x6yk4ghg  于 2023-09-29  发布在  Java
关注(0)|答案(2)|浏览(94)

我使用useState钩子来设置一个状态变量。但是有一些奇怪的行为

案例一:

const [name, setName] = useState(route.params.name)

这是正常的没有问题。

案例二:

const [name] = useState(route.params.name)

这也是一样的。

案例三:

const name = useState(route.params.name)

这里是混乱,当我试图访问的名称是崩溃,当我console.log(name)的输出是这样的。

> [{"country_code": "US", "displayName": "Appleseed John",
> "facebook_profile_link": null, "filtered_contact_id": "23033489",
> "hasThumbnail": false, "internationalNumberFormat": "+1 888-555-5512",
> "key": "0undefined2", "mobile_number": "8885555512", "name":
> "Appleseed John", "nationalNumber": "8885555512", "social_id": null,
> "social_name": null, "social_picture_url": null, "social_url": null,
> "thumbnailPath": ""}, [Function bound dispatchSetState]]

我不知道如何访问变量。

wz3gfoph

wz3gfoph1#

返回的值是一个数组,第0个索引是状态本身,第1个索引是setState的函数。要访问这些值,请使用name[0];要访问setState函数,请使用name[1]。但这违反了命名约定

guykilcj

guykilcj2#

你发布的case 3也是一个有效的表达式,因为它现在是一个数组,由两个元素组成,第一个索引0是值本身,第二个索引1是setState调度器。当使用情况1时,即

const [name, setName] = useState(route.params.name);

你正在破坏数组。因此,上述所有表达式都是有效的。

相关问题