小编Jul*_*eda的帖子

构造函数被调用两次React Component

我的react组件的构造函数被调用了两次,但我不知道为什么。我正在使用react-redux来存储我的应用程序的语言。我有一个功能可根据浏览器的语言设置默认语言。LoginPage是第一个获得渲染的组件,因此我在其构造函数中调用了我的函数。基本上,它所做的是比较并调度一个动作。当我使用redux开发人员工具检查状态时,我看到它被调度了两次。我在构造函数中打印了伪数据,它也被打印了两次。

LoginPage.js

import React from 'react';
import {connect} from 'react-redux';
import {startLogin} from '../actions/auth';
import {setLanguage} from '../actions/lang';

export class LoginPage extends React.Component{

  constructor(props){
    super(props);
    this.setDefaultLanguage();
    console.log('i am constructor');
  }

  changeLanguage = (e) => {
    const lan = e.target.value;
    this.props.setLanguage(lan);
  };

  setDefaultLanguage = () => {
    const defaultLanguage = navigator.language || navigator.userLanguage || 'en-US';

    if(defaultLanguage == 'es'){
      this.props.setLanguage(defaultLanguage);
    }else{
      this.props.setLanguage('en');
    }
  }

  render(){
    return(
      <div className="box-layout">
        <div className="box-layout__box">
          <h1 className="box-layout__title">Expensify</h1>
          <p>It\'s time to get your expenses under control.</p> …
Run Code Online (Sandbox Code Playgroud)

javascript constructor reactjs react-router react-redux

5
推荐指数
3
解决办法
6042
查看次数

如何使用express保留一个数据库实例

我正在使用express 和sequelize 来创建REST API。我想只保留数据库的一个实例,并在我可能创建的所有路由中使用它。我的第一个想法是应用程序运行后立即创建实例。像这样的东西。

const express = require('express')
const databaseService = require( './services/database')
const config = require( './config')

const userRoute = require( './routes/user')

const app = express()

databaseService.connect(config.db_options).then(
    connectionInstance => {
        app.use('user', userRoute(connectionInstance))
        app.listen(3000)
    }
)
Run Code Online (Sandbox Code Playgroud)

我还没有见过这样的事情,所以我相信这不是一个好方法。

有任何想法吗 ?

database instance node.js express tedious

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