gpt4 book ai didi

reactjs - 如何在Reactjs中实现类似MVVM的框架

转载 作者:行者123 更新时间:2023-12-03 10:16:05 24 4
gpt4 key购买 nike

我有一个简单的问题。我认为,我误解了ReactJS的用法。

我想编写一些低级可重用组件来以标准布局构建表单。

考虑这样的事情。

    var Note = React.createClass({

getInitialState: function() {
return ActionData.Model; //the form model
},

render: function () {
var model = this.state;
return (
<Fieldset id="testId" Legend={Language.Note}>
<SingleColumn Lable="Note">
<Textarea value={model.Text} />
</SingleColumn>
<TwinColumn RightLable="Date" LeftLable="">
<DatePicker ReadOnly="true" Date={model.DisplayDate} />
<Checkbox Title="show " />
</TwinColumn>
<input type="button" value="Save" onClick={this.save} />
</Fieldset>
)
},

save: function () {
var model = this.state;
//save the model here ... .
}
});

$(function () {
ReactDOM.render(<Note />, $("#myContent")[0]);
})

例如在“Textarea”组件中
    var Textarea = React.createClass({

getInitialState: function() {
return {
value: this.props.value
};
},

render: function () {
return <input type="text" className="form-control" value={this.state.value} onChange={e => this.setState({value: e.target.value})} />
}
});

如何在“Textarea”更改状态上更新“Note”组件状态? (执行类似MVVM框架的操作)。

我走的方向正确吗?

ReactJ是否有能力做这些事情!

最佳答案

您应该通过prop将函数从Note组件传递到Textarea组件:

<Textarea value={model.Text} onValueChange={(value) => this.setState({ value })} />

这样,您的子组件 Textarea可以简单地调用传递的 onValueChange函数:
return (
<input type="text" className="form-control"
value={this.state.value}
onChange={e => this.props.onValueChange(e.target.value)} />
);

关于reactjs - 如何在Reactjs中实现类似MVVM的框架,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39227199/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com