我使用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]]
我不知道如何访问变量。
2条答案
按热度按时间wz3gfoph1#
返回的值是一个数组,第0个索引是状态本身,第1个索引是setState的函数。要访问这些值,请使用name[0];要访问setState函数,请使用name[1]。但这违反了命名约定
guykilcj2#
你发布的case 3也是一个有效的表达式,因为它现在是一个数组,由两个元素组成,第一个索引0是值本身,第二个索引1是setState调度器。当使用情况1时,即
你正在破坏数组。因此,上述所有表达式都是有效的。