输入不';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'