起初,我像下面这样创建“商店”。
我想实时将输入置于登录状态。
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
}
}
然后将其注入一个组件中。
但是当我在Input上写东西时,没有出现任何输入
您能推荐一些解决方案吗?
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
答案 0 :(得分:2)
尝试使用此
@action changeLogin = (name, value) => {
this.initialState.login[name]= value
}
答案 1 :(得分:1)
仅提醒您有关<link href="Styles/chosen.css" rel="stylesheet" /> <script
src="Scripts/jquery.min.js" type="text/javascript"></script> <script
src="Scripts/chosen.jquery.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="msdropdown/dd.css" />
<script type="text/javascript"
src="msdropdown/js/jquery-1.6.1.min.js"></script> <script
type="text/javascript" src="msdropdown/js/jquery.dd.js"></script>
<script type="text/javascript" >
function calldropdownimagepostback() {
$(document).ready(function (e) {
try {
$("#ddl_purpose").msDropDown();
} catch (e) {
alert(e.message); }
});
} </script> <script>
function populateChosonDdl() {
$(".chzn-select").chosen();
$(".chzn-select-deselect").chosen({ allow_single_deselect: true });
}
$(document).ready(function () {
populateChosonDdl();
});
var prm = Sys.WebForms.PageRequestManager.getInstance();
if (prm) {
prm.add_endRequest(function () {
populateChosonDdl();
});
}
</script>
解决方案的原因:-
使用(。)表示法访问对象属性时,它将查找属性名称的字符串值。
kkangil
:这只会在对象中查找this.initialState.login.name
的字符串值。
与使用方括号name
一样,属性标识符必须是字符串或一个
引用字符串。
因此,您可以使用name,它是引用另一个字符串的变量。
例如
[]
console.log(obj.charmandar); //射击
console.log(obj [charmandar]); //水