Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
输入不';t在Reactjs的Mobx商店工作_Reactjs_Mobx - Fatal编程技术网

输入不';t在Reactjs的Mobx商店工作

输入不';t在Reactjs的Mobx商店工作,reactjs,mobx,Reactjs,Mobx,起初,我制作的“商店”如下所示。 我想实时将输入置于登录状态。 import { observable, action } from 'mobx' export default class SingUpIn { @observable initialState = { register: { email: '', username: '', password: '', passwordConfirm: '' }, lo

起初,我制作的“商店”如下所示。
我想实时将输入置于登录状态。

import { observable, action } from 'mobx'

export default class SingUpIn {
  @observable initialState = {
    register: {
      email: '',
      username: '',
      password: '',
      passwordConfirm: ''
    },
    login: {
      email: '',
      password: ''
    }
  }

  @action changeLogin = (name, value) => {
    this.initialState.login.name = value
  }
}
我将其注入一个组件中。
但当我在输入上写东西时,任何输入都不会出现
你能推荐一些解决方案吗

import React, { Component } from 'react'
import { Link } from 'react-router-dom'
import { observer, inject } from 'mobx-react'

@inject('SignUpIn')
@observer
class SignUp extends Component {
  handleChange = e => {
    const { SignUpIn } = this.props
    SignUpIn.changeLogin(e.target.name, e.target.value)
  }

  render () {
    const { SignUpIn } = this.props

    return (
      <div>
        <input
          id="email"
          name="email"
          placeholder="email"
          value={SignUpIn.initialState.login.email}
          onChange={this.handleChange}
        />
      </div>
    )
  }
}

export default SignUp
import React,{Component}来自“React”
从“react router dom”导入{Link}
从“mobx react”导入{observer,inject}
@注入('SignUpIn')
@观察者
类注册扩展了组件{
handleChange=e=>{
const{SignUpIn}=this.props
SignUpIn.changeLogin(e.target.name,e.target.value)
}
渲染(){
const{SignUpIn}=this.props
返回(
)
}
}
导出默认注册
尝试使用此选项

@action changeLogin = (name, value) => {
    this.initialState.login[name]= value
  }

只是想提醒一下关于
kkangil
解决方案的原因:-

当您使用(.)符号访问对象属性时,它将查找属性名称的字符串值

this.initialState.login.name
:这将只在对象中查找
name
的字符串值

其中,使用括号符号
[]
,属性标识符必须是字符串或 引用字符串

因此,您可以使用name,这是一个引用另一个字符串的变量

乙二醇

console.log(对象charmandar);//火

console.log(obj[charmandar]);//水

var obj = {
    charmandar: 'fire',
    squirtle: 'water'
}

var charmandar = 'squirtle'