首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >navigation.setOptions不变

navigation.setOptions不变
EN

Stack Overflow用户
提问于 2020-04-23 00:56:58
回答 2查看 10.8K关注 0票数 4

我正在使用react-navigator创建屏幕,但当屏幕打开时,我无法更改标题栏的选项

我的代码(App.js):

代码语言:javascript
复制
function App() {
  return (
    <NavigationContainer>
      <Stack.Navigator screenOptions={{
        headerTitleAlign: 'center',
        headerTitle: props => <LogoTitle {...props} />,
        headerRight: props => <HeaderRight {...props} />,
        headerStyle: {
          backgroundColor: '#F46A0D'
        },
        headerTintColor: '#fff',
      }}>
        <Stack.Screen name="Search" component={SearchScreen}/>
      </Stack.Navigator>
    </NavigationContainer>
  );
}

export default App;

我的SearchScreen.js:

代码语言:javascript
复制
import React from 'react'
import { Text, View } from 'react-native'
import { Button } from 'react-native-paper'

const SearchScreen = ({ navigation }) => {
    navigation.setOptions = {
        headerTitle: props => <TextInput {...props} placeholder="Search" placeholderTextColor="#FFFF" style={{
            fontSize: 24
        }}></TextInput>,
        headerRight: props => <FontAwesome5 {...props} name={'search'} size={22} color="white" style={{ marginRight: 15 }}></FontAwesome5>
    }
    return (
        <View>
        </View>
    )
}

export default SearchScreen;

在navigation.setOptions行中,不会发生任何事情,缺省的screenOptions Stack.Navigator将继续

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-04-23 01:23:56

尝试更改此设置

代码语言:javascript
复制
    navigation.setOptions = {
        headerTitle: props => <TextInput {...props} placeholder="Search" placeholderTextColor="#FFFF" style={{
            fontSize: 24
        }}></TextInput>,
        headerRight: props => <FontAwesome5 {...props} name={'search'} size={22} color="white" style={{ marginRight: 15 }}></FontAwesome5>
    }

要这样做:

代码语言:javascript
复制
    navigation.setOptions({
      headerTitle: props => <TextInput {...props} placeholder="Search" placeholderTextColor="#FFFF" style={{
          fontSize: 24
      }} />,
      headerRight: props => <FontAwesome5 {...props} name={'search'} size={22} color="white" style={{ marginRight: 15 }}></FontAwesome5>
    })
票数 2
EN

Stack Overflow用户

发布于 2020-08-25 15:41:16

在路由文件上

代码语言:javascript
复制
<Stack.Screen
    name="FuncName"
    component={FuncName}
    options={{
    headerTitle:''
}}/>

在按go to FuncName screen时

代码语言:javascript
复制
onPress={()=>{
    props.navigation.navigate("FuncName",{title:"title"})
  }}

然后通过道具标题更改标题

代码语言:javascript
复制
const FuncName = (props) => {
useEffect(()=>{
      props.navigation.setOptions({ headerTitle: props.route.params.title  })
  },[])
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61370729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档