cho*_*bo2 4 javascript reactjs mobx mobx-react
我对如何在代码中使用@action感到困惑。
class Items {
@observable items= [];
@action addItem() {
let newItem= new Item();
items.push(newItem);
}
}
@observer
class ItemPage extends Component {
constructor() {
super();
}
render() {
const {addItem} = this.props.store;
return (
<div className="items">
<input type="button" value="add" onClick={addItem}/>
</div>
)
}
}
const store = new Items();
Run Code Online (Sandbox Code Playgroud)
确保您改变了this.items而不仅仅是改变items。您还需要在组件中绑定操作action.bound或创建绑定处理程序:
class Items {
@observable items= [];
@action.bound
addItem() {
let newItem = new Item();
this.items.push(newItem);
}
}
@observer
class ItemPage extends Component {
render() {
const { addItem } = this.props.store;
return (
<div className="items">
<input type="button" value="add" onClick={addItem}/>
</div>
);
}
}
const store = new Items();
Run Code Online (Sandbox Code Playgroud)
要么:
class Items {
@observable items= [];
@action
addItem() {
let newItem = new Item();
this.items.push(newItem);
}
}
@observer
class ItemPage extends Component {
handleClick = () => {
this.props.store.addItem();
};
render() {
return (
<div className="items">
<input type="button" value="add" onClick={this.handleClick}/>
</div>
);
}
}
const store = new Items();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1542 次 |
| 最近记录: |