我有一个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) 安装组件时,我想呈现登录屏幕或应用程序,具体取决于用户登录的情况.但是,每次刷新时,用户都会注销.我如何让他们登录?
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) 我目前正在使用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) 我目前正在使用 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 以捆绑我的文件有关。
我目前正在我的 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) 我目前正在开发模式下运行一个独立的世博会项目。每当我运行expo start或npm 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 start和yarn start。我也试过在隧道上运行这个项目。
我使用创建了一个测试项目 …
我有一对物体.我试图找出它们是否都有相同的键,如下所示:
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.
devise ×2
reactjs ×2
algorithm ×1
api ×1
expo ×1
firebase ×1
javascript ×1
npm ×1
rails-api ×1
react-native ×1
rspec ×1
typescript ×1
vue.js ×1