小编Rba*_*bar的帖子

this.props.history.push适用于某些组件,而不适用于其他组件

我正在尝试以编程方式更改页面使用browserHistory.push.在我的一个组件中,但不在我嵌入在那个组件中的组件中.

有谁知道为什么我的项目只是为子组件而不是父组件抛出错误?

无法读取undefined属性'push'

父组件

import React, {Component} from 'react';
import { browserHistory } from 'react-router';
import ChildView from './ChildView';

class ParentView extends Component {

constructor(props) {
    super(props);
    this.addEvent = this.addEvent.bind(this);
  }

changePage() {
    this.props.history.push("/someNewPage");
  }

render() {
    return (
      <div>
        <div>
          <button onClick={this.changePage}>Go to a New Page!</button>
        </div>

        <ChildView />  // this is the child component where this.props.history.push doesn't work 

      </div>
    );
  }
}

function mapStateToProps(state) {
    return {
        user: state.user
    };
}

function matchDispatchToProps(dispatch) {
    return bindActionCreators({ …
Run Code Online (Sandbox Code Playgroud)

javascript router reactjs react-router

24
推荐指数
2
解决办法
3万
查看次数

CocoaPods没有将Firebase SDK更新到4.0.0版

我正在尝试使用CocoaPods(根据文档建议)将我的Swift项目更新到Firebase的新SDK版本4.0.0,但即使我按照文档中步骤操作,似乎也没有安装更新的SDK .

任何人都可以帮助我理解为什么这不起作用以及我可以做些什么来更新到新的Firebase SDK?

我的Podfile

# Uncomment this line to define a global platform for your project
platform :ios, '9.2'
# Uncomment this line if you're using Swift
use_frameworks!


target 'myProject' do

pod 'Firebase'
pod 'Firebase/Auth'
pod 'Firebase/Core'
pod 'Firebase/Storage'
pod 'Firebase/Database'
pod 'Firebase/Crash'
pod 'Firebase/Messaging'


pod 'Alamofire', '~> 4.4'

end
Run Code Online (Sandbox Code Playgroud)

当我运行时,pod install我得到了这个看似有希望的输出(除了它不是版本4,因为我认为它应该是):

Analyzing dependencies
Downloading dependencies
Using Alamofire (4.4.0)
Installing Firebase 3.17.0 (was 3.17.0)
Using FirebaseAnalytics (3.9.0) …
Run Code Online (Sandbox Code Playgroud)

sdk ios cocoapods firebase swift

19
推荐指数
2
解决办法
1万
查看次数

javascript推送返回数字而不是对象

我确定这只是一个我错过的一个简单的愚蠢错误,但任何人都可以告诉我为什么3要归还而不是[{ "method": 'popup', "minutes": ''}, {"method": 'email', "minutes": '10'}, {"method": 'popup', "minutes": '20'}];

我做了一个jsfiddle所以你也可以看到:https://jsfiddle.net/qk10arb0/3/

HTML

<p>Click the button to add a new element to the array.</p>

<button onclick="addNewReminder()">Try it</button>

<p id="demo"></p>
Run Code Online (Sandbox Code Playgroud)

使用Javascript

function addNewReminder(){
      var newReminder = {
        "method": 'popup',
        "minutes": '20'
      };

      var reminders = [{
                "method": 'popup',
                "minutes": ''
              }, {
                  "method": 'email',
                  "minutes": '10'
              }];

    reminders = reminders.push(newReminder);
    document.getElementById("demo").innerHTML = reminders;
}
Run Code Online (Sandbox Code Playgroud)

谢谢!!!

javascript

12
推荐指数
1
解决办法
5105
查看次数

java.lang.NoClassDefFoundError:解析失败:Landroid/support/v7/appcompat/R$drawable;

离开项目一段时间后,我将其打开并尝试再次运行,但失败并显示以下错误。同样的错误似乎发生在多个项目中。

错误:

03-12 15:54:07.172 2431-2431/? E/AndroidRuntime: FATAL EXCEPTION: main
                                                 Process: com.myname.myproject, PID: 2431
                                                 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/appcompat/R$drawable;
                                                     at android.support.v7.widget.AppCompatDrawableManager.<clinit>(AppCompatDrawableManager.java:107)
                                                     at android.support.v7.widget.AppCompatDrawableManager.get(AppCompatDrawableManager.java:84)
                                                     at android.support.v7.widget.TintTypedArray.getDrawableIfKnown(TintTypedArray.java:85)
                                                     at android.support.v7.app.AppCompatDelegateImplBase.<init>(AppCompatDelegateImplBase.java:128)
                                                     at android.support.v7.app.AppCompatDelegateImplV9.<init>(AppCompatDelegateImplV9.java:149)
                                                     at android.support.v7.app.AppCompatDelegateImplV11.<init>(AppCompatDelegateImplV11.java:29)
                                                     at android.support.v7.app.AppCompatDelegateImplV14.<init>(AppCompatDelegateImplV14.java:54)
                                                     at android.support.v7.app.AppCompatDelegateImplV23.<init>(AppCompatDelegateImplV23.java:31)
                                                     at android.support.v7.app.AppCompatDelegateImplN.<init>(AppCompatDelegateImplN.java:31)
                                                     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:198)
                                                     at android.support.v7.app.AppCompatDelegate.create(AppCompatDelegate.java:183)
                                                     at android.support.v7.app.AppCompatActivity.getDelegate(AppCompatActivity.java:519)
                                                     at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:70)
                                                     at com.myname.myproject.LoginOrSignUp.LaunchPage.onCreate(LaunchPage.java:27)
                                                     at android.app.Activity.performCreate(Activity.java:6999)
                                                     at android.app.Activity.performCreate(Activity.java:6990)
                                                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1214)
                                                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2731)
                                                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856)
                                                     at android.app.ActivityThread.-wrap11(Unknown Source:0)
                                                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1589)
                                                     at android.os.Handler.dispatchMessage(Handler.java:106)
                                                     at android.os.Looper.loop(Looper.java:164)
                                                     at android.app.ActivityThread.main(ActivityThread.java:6494)
                                                     at java.lang.reflect.Method.invoke(Native Method)
                                                     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
                                                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
                                                  Caused by: java.lang.ClassNotFoundException: Didn't find class …
Run Code Online (Sandbox Code Playgroud)

java android drawable android-appcompat

7
推荐指数
1
解决办法
7035
查看次数

具有FCM令牌的设备的Firebase通知已发送但未收到

我正在尝试使用FCM令牌从firebase通知控制台向特定设备发送简单的推送通知.firebase通知控制台将通知显示为已发送但设备未收到通知.我已经尝试发送通知,然后等待查看控制台是否记录didReceiveRemoteNotification,但通知需要花费太长时间(小时)才能显示为在firebase控制台中发送(即使我将优先级设置为high).

App代表

import UIKit
import Firebase
import FirebaseStorage
import FirebaseDatabase
import FirebaseMessaging
import CoreData
import UserNotifications

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, UNUserNotificationCenterDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.

        // Use Firebase library to configure APIs
        FirebaseApp.configure()

        /////
        // For Firebase Cloud Messaging (FCM)
        if #available(iOS 10.0, *) {
            // For iOS 10 display notification (sent via APNS)
            UNUserNotificationCenter.current().delegate = …
Run Code Online (Sandbox Code Playgroud)

ios firebase swift firebase-cloud-messaging firebase-notifications

6
推荐指数
2
解决办法
9050
查看次数

在 Firebase Cloud Functions 中仅部署单个未导出的函数

我在我的 firebase 云函数文件中创建了以下函数:

function whatsMyName(name) {
  return "your name is " + name
} 
Run Code Online (Sandbox Code Playgroud)

当我运行在命令行中输入以下,则该功能部署:

firebase deploy --only functions
Run Code Online (Sandbox Code Playgroud)

但是,这部署了我的所有功能。我只想部署该whatsMyName功能。通常,如果我有一个导出的函数,如下所示:

exports.someExportedFunction = functions.https.onRequest((req, res) => {
   // do some stuff
}
Run Code Online (Sandbox Code Playgroud)

然后我可以运行以下命令来部署导出的函数:

firebase deploy --only functions:someExportedFunction
Run Code Online (Sandbox Code Playgroud)

但是,当我运行以下命令时,未部署非导出函数:

firebase deploy --only functions:whatsMyName
Run Code Online (Sandbox Code Playgroud)

有谁明白为什么这不单独部署我的非导出函数whatsMyName,以及如何为 Firebase Cloud Functions 部署非导出函数?

command-line node.js firebase google-cloud-functions

6
推荐指数
1
解决办法
894
查看次数

Firebase 身份验证 - Firebase 注册和重定向后用户未登录

我正在为使用 firebase 的用户创建一个帐户。创建帐户后,我重定向到主页,它检查我是否登录。奇怪的是,我没有登录。

在创建帐户页面上:

createAccount() {
  firebaseAuth().createUserWithEmailAndPassword(this.state.email, this.state.password).then((user) => {
    // write some data to database
    firebase.database().ref().child('users').child(user.uid).child('someKey').set(this.state.email).then(function() {
      // send email verification
      user.sendEmailVerification().then(function() {
        console.log("sent email verification");
        // Go to home page
        this.props.history.push('/home');
      }.bind(this)).catch(function(error) {
        console.log("Error: account created but no verification email sent.");
      }.bind(this));
    }.bind(this)).catch((error) => {
      console.log('Error: while writing to database');
    });
  // catch any error while creating user
  }).catch((error) => {
    console.log('Error: while creating account');
  });
}
Run Code Online (Sandbox Code Playgroud)

在主页上:

componentDidMount() {
  firebase.auth().onAuthStateChanged(function (user) {
    if (!user) {
      console.log("no user …
Run Code Online (Sandbox Code Playgroud)

javascript firebase reactjs react-router firebase-authentication

6
推荐指数
1
解决办法
2801
查看次数

Android WebView中的弹出窗口不会显示为Google Calendar Auth

我有一个网络应用程序,其中包含嵌入的谷歌日历.我现在想在我的Android应用程序中的WebView中的WebView中加载此Web应用程序.为了显示日历,用户必须按下打开Goog​​le Auth弹出窗口的按钮才能授权我拉取Google日历.这适用于桌面,iOS(浏览器和WebView)和Android(浏览器但不是 WebView),但Google日历登录/验证屏幕不会显示在Android WebView中.

我的活动(在Android中):

public class WebView extends AppCompatActivity {

    android.webkit.WebView myWebView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_web_view);

        myWebView = (android.webkit.WebView) findViewById(R.id.webview);
        WebSettings webSettings = myWebView.getSettings();
        ////
        // ISSUE: I expected one of these to allow the popup screen to show
        webSettings.setJavaScriptEnabled(true);
        webSettings.setDomStorageEnabled(true);
        webSettings.setUserAgentString("Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
        webSettings.setAllowFileAccess(true);
        webSettings.setJavaScriptCanOpenWindowsAutomatically(true);
        webSettings.setSupportMultipleWindows(true);
        // ISSUE^
        ////
        myWebView.loadUrl("https://mywebsite.com/");
    }

    @Override
    protected void onSaveInstanceState(Bundle outState ) {
        super.onSaveInstanceState(outState);
        myWebView.saveState(outState);
    }

    @Override
    protected void onRestoreInstanceState(Bundle savedInstanceState) …
Run Code Online (Sandbox Code Playgroud)

javascript android google-calendar-api webview

6
推荐指数
0
解决办法
442
查看次数

Firebase - 如何为网络应用(非原生应用)创建 A/B 测试实验

我想对我们使用 Firebase 的网络应用程序的一项功能进行 A/B 测试。在设置 A/B 测试时,我注意到它要求我选择一个“应用程序”(我也有一个本机应用程序),但我正在尝试定位使用我的网络应用程序的用户

在此处输入图片说明

我能想到的一种解决方法是:

  • 创建一个远程配置布尔变量
  • 为“随机百分位数内的用户”变量添加条件
  • 在 Web 应用程序加载时获取该远程配置值
  • 根据变量值显示/不显示特征

变通方法的缺点是它不会跟踪改进或实验结果,例如: 在此处输入图片说明 在此处输入图片说明

有没有办法为 Web 应用程序运行 Firebase A/B 测试实验 ?(不是本机应用程序)

firebase firebase-remote-config firebase-ab-testing

6
推荐指数
1
解决办法
1166
查看次数

在 ReactJS 项目中为 Appcues 设置识别用户

我正在尝试在 ReactJS 项目中设置 Appcues,并且文档指出添加以下内容以识别当前用户:

  Appcues.identify({UNIQUE_USER_ID}, { // Unique identifier for current user
    name: "John Doe",   // Current user's name
    email: "john.doe@example.com", // Current user's email
    created_at: 1234567890,    // Unix timestamp of user signup date    
  });
Run Code Online (Sandbox Code Playgroud)

但是,这会引发以下错误:

'Appcues' 未定义

这个错误对我来说很有意义,因为对象Appcues, 被引用但没有导入或创建。

尝试修复:

由于 Appcues 是从脚本导入的,我尝试Appcues通过访问window,但是当我在浏览器中转到我的项目时,它导致我的演示没有被加载:

  window.Appcues.identify({UNIQUE_USER_ID}, { // Unique identifier for current user
    name: "John Doe",   // Current user's name
    email: "john.doe@example.com", // Current user's email
    created_at: 1234567890,    // Unix timestamp …
Run Code Online (Sandbox Code Playgroud)

javascript window reactjs

5
推荐指数
1
解决办法
1602
查看次数