小编Joh*_*Cdf的帖子

在React中使用.map()时处理空数组

我有一个React.JS组件,它将映射notes变量以显示.

但是,我遇到了没有笔记和收到错误的问题.什么是接近这个的正确方法?

这是代码:

import React, {Component} from 'react';


class List extends Component {
    constructor(props){
      super(props);
    }

render(){
  var notes = this.props.items.map((item, i)=>{
      return(
          <li className="listLink" key={i}>
              <p>{item.title}</p>
              <span>{item.content}</span>
          </li>
          )
      });
    return(
      <div className='list'>

          {notes}

      </div>
    );
  }
}

export default List;
Run Code Online (Sandbox Code Playgroud)

reactjs

9
推荐指数
3
解决办法
1万
查看次数

如何在React.JS中刷新后让用户登录firebase?

安装组件时,我想呈现登录屏幕或应用程序,具体取决于用户登录的情况.但是,每次刷新时,用户都会注销.我如何让他们登录?

应用组件:

 firebase.initializeApp(config); //init the firebase app...

class App extends Component {//this component renders when the page loads
constructor(props){
  super(props);

  this.state = {user: firebase.auth().currentUser};//current user
}
render(){
    if (this.state.user) {//if you are logged in
          return (
            <Application/>
          );
    } else {//if you are not logged in
          return (
            <Authentication/>
          );
    }
}

}
Run Code Online (Sandbox Code Playgroud)

这是我用来登录用户的方法(工作正常):

let email = "some";
let password = "thing";
const auth = firebase.auth();
const promise = auth.signInWithEmailAndPassword(email, password);
Run Code Online (Sandbox Code Playgroud)

authentication firebase reactjs firebase-authentication

7
推荐指数
2
解决办法
3882
查看次数

Rails Devise API - 登录路由响应`您需要在继续之前登录或注册

我目前正在使用Devise和我的Rails API应用程序来使用devise-jwt对用户进行身份验证.

这是我的用户模型的样子:

class User < ApplicationRecord
  devise :database_authenticatable,
         :registerable,
         :jwt_authenticatable,
         jwt_revocation_strategy: JWTBlackList
end
Run Code Online (Sandbox Code Playgroud)

config/routes.rb设置如下:

Rails.application.routes.draw do
  devise_for :users,
         path: '',
         path_names: {
           sign_in: 'login',
           sign_out: 'logout',
           registration: 'signup'
         },
         controllers: {
           sessions: 'sessions',
           registrations: 'registrations'
         }
end
Run Code Online (Sandbox Code Playgroud)

这是会话控制器:

class SessionsController < Devise::SessionsController

  private

  def respond_with(resource, _opts = {})
    render json: resource
  end

  def response_to_on_destroy
    head :no_content
  end
end
Run Code Online (Sandbox Code Playgroud)

和注册控制人:

class RegistrationsController < Devise::RegistrationsController
  respond_to :json

  def create
    build_resource(sign_up_params)

    resource.save
    render_resource(resource)
  end
end
Run Code Online (Sandbox Code Playgroud)

我运行了一些Rspec测试,如下所示,这些测试都是成功的

require 'rails_helper'

RSpec.describe SessionsController, …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails devise rails-api

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

Vue &amp; Typescript:找不到图像导入

问题

我目前正在使用 Typescript 开发一个 Vue 项目。在我的资产文件夹中,我有一些我想用单独的 Typescript 文件导入的图像。


背景

这个项目由 vue-cli 使用 Typescript, version 引导3.2.1。我尝试过的是使用 require 直接导入到我的文件中,但这不起作用。然后我尝试导入import无济于事


代码

这是我尝试过的:

./src/myFile.ts
import Image from '@/assets/img/hello.png';
Run Code Online (Sandbox Code Playgroud)

不起作用

./src/myFile.ts
import Image from '../assets/img/hello.png';
Run Code Online (Sandbox Code Playgroud)

不起作用

./src/myFile.ts
const Image = require('../assets/img/hello.png');
Run Code Online (Sandbox Code Playgroud)

不起作用


结果

打包器会抛出一个错误,Relative modules were not found后面跟着文件的路径。我已确保路径正确,我怀疑这与 TypeScript 如何管理导入以及如何配置 Vue-cli 以捆绑我的文件有关。

截屏

这是实际项目的屏幕截图。文件路径是./src/views/World/Combat/Game.ts项目树截图

typescript vue.js

3
推荐指数
1
解决办法
2300
查看次数

设计注册路由不存在

我目前正在我的 Rails API 应用程序上devise使用该devise-jwt插件来实现。我已经为设计添加了必要的配置,但是当涉及到路由时,注册路由似乎不存在......

当我运行时,rails routes我得到以下输出:

     new_user_session GET    /login(.:format)                                                                         sessions#new
         user_session POST   /login(.:format)                                                                         sessions#create
 destroy_user_session DELETE /logout(.:format)
Run Code Online (Sandbox Code Playgroud)

我的文件如下app/config/routes.rb所示:

Rails.application.routes.draw do
  devise_for :users,
         path: '',
         path_names: {
           sign_in: 'login',
           sign_out: 'logout',
           registration: 'signup'
         },
         # i use my own custom controllers for this
         controllers: {
           sessions: 'sessions',
           registrations: 'registrations'
         }
end
Run Code Online (Sandbox Code Playgroud)

我正在覆盖会话/注册,使用我自己的,如下所示:

会话控制器

# app/controllers/sessions_controller.rb

class SessionsController < Devise::SessionsController

  private

  def respond_with(resource, _opts = {})
    render json: resource
  end

  def response_to_on_destroy
    head :no_content …
Run Code Online (Sandbox Code Playgroud)

api ruby-on-rails devise

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

开发中的“expo start”卡在“隧道连接”,二维码无法使用

我目前正在开发模式下运行一个独立的世博会项目。每当我运行expo startnpm start在终端中时,我都会收到以下日志:

$ expo start                                                                                                                                                                      
Starting project at /Users/johncd/workspace
Expo DevTools is running at http://localhost:19002
Starting Metro Bundler on port 19001.
Tunnel ready.
Your native app is running at expb675c828acbb437095bc6218883f56bb://192.168.1.12:19000
Logs for your project will appear below. Press Ctrl+C to exit.
Run Code Online (Sandbox Code Playgroud)

预期结果将在这些日志后包含一个二维码,但没有。

当我在 localhost:90002 访问 DevTools 时,我看到 Metro 捆绑器正在 LAN 上运行,并且可以使用二维码。但是,当我扫描此 QR 码时,会导致错误读取“未找到可用数据”。

扫描二维码时找不到可用数据

  • 我试过检查防火墙(系统首选项 > 隐私 > 防火墙),但它似乎已关闭。

  • 我也尝试卸载并重新安装expo-cli以及该项目并expo start再次运行但无济于事。

  • 我试过使用npm startyarn start。我也试过在隧道上运行这个项目。

  • 我使用创建了一个测试项目 …

npm react-native expo

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

找出对象是否具有相同的键

我有一对物体.我试图找出它们是否都有相同的键,如下所示:

let a = { user1: true, user2: true }
let b = { user1: true, user3: true }
hasSameKeys(a, b) => false

let a = { user1: true, user2: true }
let b = { user2: true, user1: true }
hasSameKeys(a, b) => true
Run Code Online (Sandbox Code Playgroud)

我也在使用_underscore.js

提前致谢

约翰S.

javascript algorithm underscore.js

0
推荐指数
1
解决办法
142
查看次数