React Native useContex
Oct 23 2020
import React from 'react';
export function useAuth() {
const [name, setName] = React.useState('Sa');
return {name, setName};
}
import {createContext} from 'react';
export const UserContext = createContext();
import React from 'react';
import {useAuth} from './userHook';
import {UserContext} from './userContext';
import Pagesd from './pagesd';
export default function () {
const {name} = useAuth();
return (
<UserContext.Provider value={name}>
<Pagesd />
</UserContext.Provider>
);
}
import React from 'react';
import {View, Text} from 'react-native';
import {UserContext} from './userContext';
function Pagesd() {
const {name} = React.useContext(UserContext);
return (
<View>
<Text>{name}</Text>
</View>
);
}
export default Pagesd;
UseAuth işlevinin, yanlış yaptığım yerde Sa Pagesd () yazdığını görmesini bekliyordum
Vaka yönetimini yapmak istiyorum, ancak adı app js'de geliyor, ancak çocuklara erişemiyorum.
Yanıtlar
evolutionxbox Oct 23 2020 at 01:57
Şimdiye kadar gösterilen kod, bir istisna dışında doğrudur.
const {name} = React.useContext(UserContext);
Değerin namedönüşünden yıkılıyor useContext. Verilen değer bir nesne ise bu sorun değil, ama ben öyle olmadığını varsayıyorum.
<UserContext.Provider value={name}>
Eğer namebir nesne değil, ama bir dize, o zaman destructure çalışmaz ve nameolacaktır undefined.
Bunu çözmek için iki seçeneğiniz var:
nameDeğeri yok etmeyin
const name = React.useContent(UserContext);
- Sağlayıcıya bir nesne iletin
<UserContext.Provider value={{name}}>
React, {} bir JavaScript ifadesini belirtmek için küme parantezleri kullanır , oysa içteki küme parantezleri bir nesne değişmez özellik değeri kısaltmasıdır .
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Charly Reynolds Yakın Zamandaki Vokal Kord Ameliyatını Açıkladı: 'Şarkı Söylemekte Sorun Yaşıyordum'