Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 在React导航中将组件用作标题_Reactjs_React Native_React Navigation - Fatal编程技术网

Reactjs 在React导航中将组件用作标题

Reactjs 在React导航中将组件用作标题,reactjs,react-native,react-navigation,Reactjs,React Native,React Navigation,我试图将一个组件作为堆栈导航器标题。代码如下: const Test = ({ navigation }) => { return ( <View> <Text>Test1</Text> <Text>Test2</Text> </View> ); }; const stackNav = createStackNavigator( { ProductionLi

我试图将一个组件作为堆栈导航器标题。代码如下:

const Test = ({ navigation }) => {
  return (
    <View>
      <Text>Test1</Text>
      <Text>Test2</Text>
    </View>
  );
};

const stackNav = createStackNavigator(
  {
    ProductionList: {
      screen: List,
      navigationOptions: {
        header: {
          title: <Test />
        }
      }
    },
    ProductionBoard: {
      screen: Board
    }
  },
  {
    navigationOptions: {
      headerStyle: {
        backgroundColor: colors.dark
      },
      headerTintColor: "#fff",
      headerTitleStyle: {
        fontWeight: "bold"
      }
    }
  }
);

关于如何解决这个问题有什么想法吗?

反应导航中的导航选项进行了一些更改,第2版现在采用了不同的参数

这:

navigationOptions: {
        header: {
          title: <Test />
        }
      }
导航选项:{
标题:{
标题:
}
}
现在可以这样做吗

navigationOptions: {
      header: <Test />
    }
导航选项:{
标题:
}

导航选项:{
标题:
}

如果您想使用自定义标题,请执行此操作,使用react导航时会有一些限制

    static navigationOptions = {
          header : null
      };


    <View style={styles.header}>
             <TouchableOpacity
                  style={styles.backButton}
                  onPress={() => this.props.navigation.goBack()}>
                    <Image
                      source= 
                      {require("../../../../public/Assets/images/ArrowBack.png")}
                     />
           </TouchableOpacity>
           <Text style={styles.backTitle}>Title</Text>
        </View>


const styles = StyleSheet.create({
    header: {
        flexDirection: "row",
        backgroundColor: "#F5F5F5",
        paddingTop : Platform.OS == 'ios' ? 20 : 0,
    }

 backTitle: {
    fontFamily: Fonts.GothamMedium,
    fontSize: 20,
    marginLeft : 10,
    marginTop: Platform.OS === 'ios' ? 24 : 16,
    marginBottom: Platform.OS === 'ios' ? 20 : 19,
    color: "#414042",
  },
});
静态导航选项={
标题:空
};
this.props.navigation.goBack()}>
标题
const styles=StyleSheet.create({
标题:{
flexDirection:“行”,
背景颜色:“F5”,
paddingTop:Platform.OS==“ios”?20:0,
}
书名:{
fontFamily:Fonts.GothamMedium,
尺寸:20,
边缘左:10,
marginTop:Platform.OS=='ios'?24:16,
marginBottom:Platform.OS=='ios'?20:19,
颜色:“414042”,
},
});

您应该使用
标题
而不是
标题:{title

navigationOptions: {
  headerTitle: // your custom component here
}

您确定共享的代码是错误源吗?在错误堆栈中看不到它们。错误发生在React Navigator(RN)内部.所有的调用堆栈都是RN的内部函数…我看到这是唯一一个使用函数的地方。开始点:我知道,但通过这种方式,标题不会显示在屏幕上,得到一个空标题…您使用的是
react导航的v1或v2吗?我使用的是最新版本(2.0.4)抱歉,我更新了答案,
headerTitle
是您现在使用的。如果您想更新依赖项,最新版本是(2.12.0)。
    static navigationOptions = {
          header : null
      };


    <View style={styles.header}>
             <TouchableOpacity
                  style={styles.backButton}
                  onPress={() => this.props.navigation.goBack()}>
                    <Image
                      source= 
                      {require("../../../../public/Assets/images/ArrowBack.png")}
                     />
           </TouchableOpacity>
           <Text style={styles.backTitle}>Title</Text>
        </View>


const styles = StyleSheet.create({
    header: {
        flexDirection: "row",
        backgroundColor: "#F5F5F5",
        paddingTop : Platform.OS == 'ios' ? 20 : 0,
    }

 backTitle: {
    fontFamily: Fonts.GothamMedium,
    fontSize: 20,
    marginLeft : 10,
    marginTop: Platform.OS === 'ios' ? 24 : 16,
    marginBottom: Platform.OS === 'ios' ? 20 : 19,
    color: "#414042",
  },
});
navigationOptions: {
  headerTitle: // your custom component here
}