组件名称需要以大写字母开头吗?

时间:2019-07-29 13:34:11

标签: javascript node.js reactjs api react-native

因此,我正在尝试将此https://github.com/seeden/react-facebook用作混合React应用程序的一部分。但是,当我将代码复制并粘贴到项目中时,会出现错误

import React, {Component } from 'react';
import { FacebookProvider, Page } from 'react-facebook';
//import {createBottomTabNavigator, createAppContainer} from 'react- 
navigation';
export default class Home extends Component {
    render(){
       //const { navigate } = this.props.navigation
    return (
       <FacebookProvider appId="2319566588264121">
           <Page href="https://www.facebook.com/somepage/" tabs="timeline" 
            />
       </FacebookProvider> 
    );
   }
 }

我的想法是在我的应用程序屏幕上显示一个Facebook页面供稿。但是I get this error

Invariant Violation: View config not found for name div. Make sure to start component names with a capital letter.

This error is located at:
  in div (created by Page)
  in Page (created by Parser)
  in Initialize (created by Context.Consumer)
  in ForwardRef (created by Parser)
  in div (created by Parser)
  in Parser (created by ForwardRef)
  in ForwardRef (at Home.js:18)
  in Facebook (at Home.js:17)
  in Home (at SceneView.js:0)
  in SceneView (at createTabNavigator.js139)
  in RCTView (at View.js:45)
  in View (at ResourceSavingScene.js:37)
  in RCTView (at View.js:45)
  in View (at ResourceSavingScene.js:26)
  in ResourceSavingScene (at createllottomTabNavigatorls:121)
  in RCTView (at View.js:45)
  in View (at screens.native.js:83)
  in ScreenContainer (at create00ttomTabNavigator.js:111)
  in RCTView (at View.js:46)
  in View (at createBottomTabNavigator.js: 110)
  in TabNavigationView (at createTabNavigator.js:197)
  in NavigationView (at createNavigator.js:61)
  in Navigator (at createAppContainer.js:429)
  in NavigationContainer (at . . 

2 个答案:

答案 0 :(得分:4)

看起来seeden/react-facebook是为浏览器和DOM构建的。您不能在React Native中使用const functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(); exports.schedulefunction = functions.pubsub.schedule('every 5 minutes').onRun(async context => {console.log('running every 5 minutes');}); 之类的东西-这意味着您必须自己实现该库,或者找到其他与React Native兼容的

答案 1 :(得分:0)

是的,组件的名称必须以大写字母开头,因为,当您使用小写字母编写组件名称时,编译器会像html标签一样运行它,但是,当您使用大写字母编写时,编译器将从您的javascript文件位置运行它。