首页 > 解决方案 > 渲染不是一个函数 facebook 广告

问题描述

我正在制作 React Native expo 应用程序,并开始将 Facebook 广告添加到我的应用程序中。我得到了 id,然后我已经安装了expo-ads-facebook包,但是当我开始添加横幅时,它给了我一个错误:

r.render 不是函数

应用程序.js

import React from 'react';
import { FacebookAds } from 'expo'

class AdScreen extends React.Component {
  ViewWithBanner(props) {
    return (
      <FacebookAds.BannerAd
        placementId="2272791379702600_2272803043034767"
        type="standard"
        onPress={() => console.log('click')}
        onError={error => console.log('error', error)}
      />
    );
  }
}

export default createStackNavigator({
  Main: { screen: AdScreen }
}, 
{initialRouteName: 'Main'});

标签: react-nativeexpofacebook-ads-api

解决方案


没有渲染功能,但如果使用带有 JSX 的类组件,您确实需要一个。例如:

class AdScreen extends React.Component {
    render () {
        return (
            <FacebookAds.BannerAd
                placementId="2272791379702600_2272803043034767"
                type="standard"
                onPress={() => console.log('click')}
                onError={error => console.log('error', error)}
            />
        );
    }
}

或者,您可以按照文档创建无状态功能组件:https ://docs.expo.io/versions/latest/sdk/facebook-ads/

旁注:从您的导入来看,您似乎使用的是过时的 expo 版本。我建议为新项目升级到最新版本。


推荐阅读