它背后有不同的原因,但我想知道如何简单地将自定义属性添加到JSX中的元素?
我有以下代码(简化):
var group = sequelize.define("group", {
id: {type: DataTypes.INTEGER, autoIncrement: false, primaryKey: true},
name: type: DataTypes.STRING,
parentId: DataTypes.INTEGER
}, { classMethods: {
associate: function (models) {
group.belongsToMany(models.item, { as:'items', foreignKey: 'group_id', through: models.group_item_tie });
}}
});
var group_item_tie = sequelize.define("group_item_tie", {}, {freezeTableName: true});
var item = sequelize.define("item", {
spn: { type: DataTypes.INTEGER, autoIncrement: false, primaryKey: true },
}, { classMethods: {
associate: function (models) {
item.belongsToMany(models.group, { foreignKey: 'spn', through: models.group_item_tie });
}}
});
Run Code Online (Sandbox Code Playgroud)
当我尝试返回一些关系记录时,让我们这样说:
dbcontext.group.findAll({
where: { id: 6 …
Run Code Online (Sandbox Code Playgroud) 我在组件中有以下代码:
constructor() {
this.state = Immutable.fromJS({
user : {
wasChanged : false,
firstName : false,
lastName : false,
address : {
street : false,
}
}
});
}
onEdit({target: {dataset: {target}}}, value) {
this.setState(function (prevState) {
return prevState.setIn(['user', target], value);
});
}
render() {
var user = this.state.get('user').toJS();
...
}
Run Code Online (Sandbox Code Playgroud)
问题是,当我尝试更新onEdit中的值时,我发现prevState具有不同的原型集.我不明白为什么或我做错了什么.我在控制台看到这个
> Object.getPrototypeOf(this.state)
src_Map__Map {@@__IMMUTABLE_MAP__@@: true}
> Object.getPrototypeOf(prevState)
Object {}
Run Code Online (Sandbox Code Playgroud)
在状态被更改后,它将进行渲染,当然它无法从Immutable中找到get函数或任何内容
使用与插件的反应0.13.3.