navigationOptionsにコンポーネントのpropsを渡したい
4203 ワード
アプリのヘッダーにある「保存」ボタンにコンポーネントの値を渡したいときどうするか、みたいな話です
処理の概要
- コンポーネントの中で
setParams
する
-
setParam
に渡したい値を入れる
-
navigationOptions
の中でgetParam
する
サンプルコード
// 画面
const FooScreen: React.FC & NavigationStackScreenComponent = ({ navigation }) => {
// navigationでこの値を渡したい
const [count, setCount] = useState<number>(0)
// countが更新されたらnavigationのparamの値も更新する
useEffect(() => {
navigation.setParams({ fooParam: count })
}, [count])
return (
<View>
<Button title='おしてね' onPress={() => setCount(count + 1)} />
</View>
)
}
// navigation options
FooScreen.navigationOptions = ({ navigation }) => ({
title: 'ふーーー',
headerRight: (
<Button title='保存' onPress={() => navigation.navigate('Bar', {
// setParamで設定した値を取得 -> Bar画面へのparamに入れ直す
fooParam: navigation.getParam('fooParam')
})} />
)
})
setParams
するsetParam
に渡したい値を入れるnavigationOptions
の中でgetParam
する
// 画面
const FooScreen: React.FC & NavigationStackScreenComponent = ({ navigation }) => {
// navigationでこの値を渡したい
const [count, setCount] = useState<number>(0)
// countが更新されたらnavigationのparamの値も更新する
useEffect(() => {
navigation.setParams({ fooParam: count })
}, [count])
return (
<View>
<Button title='おしてね' onPress={() => setCount(count + 1)} />
</View>
)
}
// navigation options
FooScreen.navigationOptions = ({ navigation }) => ({
title: 'ふーーー',
headerRight: (
<Button title='保存' onPress={() => navigation.navigate('Bar', {
// setParamで設定した値を取得 -> Bar画面へのparamに入れ直す
fooParam: navigation.getParam('fooParam')
})} />
)
})
Author And Source
この問題について(navigationOptionsにコンポーネントのpropsを渡したい), 我々は、より多くの情報をここで見つけました https://qiita.com/jesuissuyaa/items/3332ab93417eb7828251著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .