在reactjs中使用多个组件插入数据
Insert data using multiple components in reactjs
我正在尝试使用 reactjs 中的多个组件将数据插入数据库。在我的第一个组件中,我有一个如下所示的表单(此组件中没有 Submit
按钮)
render() {
return (
<form>
<input type="text" name="name" placeholder="Name"/>
</form>
);
}
在第二个组件中,我用 if
else
逻辑调用该组件。
在第三个组件中,我有如下所示的提交按钮
<Button
positive icon='checkmark'
labelPosition='right'
onClick={this.insertAddress}
content='Save'
/>
我的主要问题是使用 state
。我怎样才能在这里有效地使用 state
?如何捕获第三个组件中第一个组件的 input
值以插入数据库?
使用容器组件的概念。
创建一个容器组件,它将保存所有子组件的状态。在这里不断更新与数据相关的所有状态。并从这里调用保存功能。
class Parent extends React.Component{
constructor(props){
super(props);
this.state={
name:'',
email:'',
phone:''
}
this.handleFormChanges = this.handleFormChanges.bind(this)
this.handleSubmit = this.handleSubmit.bind(this);
this.reactToSomeChange = this.reactToSomeChange.bind(this)
}
handleFormChanges(ev){
// handle form and set appropriate state
}
handleFormChanges(ev){
// react to change and set state
}
handleSubmit(){
// update your data store db etc.
}
render(){
return(
<MyForm changes={this.handleFormChanges} />
<IfElse changes={this.reactToSomeChange} />
<Button submit={this.handleSubmit} />
)
}
}
// MyFrom component render function
render() {
return (
<form>
<input type="text" name="name" onChanges={this.props.changes} placeholder="Name"/>
</form>
);
// Button component render function
render(){
<button onClick={this.props.submit}>SUBMIT<Button>
}
子组件不需要调用api来保存数据。它应该从在子组件中共享相同状态的单个父组件完成。
您创建了一个 parent 容器。 parent 容器保存状态、所有方法和事件处理程序。所有这些都绑定到 parent.
然后您将状态的方法和部分传递给 children。当他们 children 使用它们时,他们将改变 parent。我创建了一个简单的沙箱来进行演示。您不需要传递整个状态,只需传递 children.
所需的部分
我正在尝试使用 reactjs 中的多个组件将数据插入数据库。在我的第一个组件中,我有一个如下所示的表单(此组件中没有 Submit
按钮)
render() {
return (
<form>
<input type="text" name="name" placeholder="Name"/>
</form>
);
}
在第二个组件中,我用 if
else
逻辑调用该组件。
在第三个组件中,我有如下所示的提交按钮
<Button
positive icon='checkmark'
labelPosition='right'
onClick={this.insertAddress}
content='Save'
/>
我的主要问题是使用 state
。我怎样才能在这里有效地使用 state
?如何捕获第三个组件中第一个组件的 input
值以插入数据库?
使用容器组件的概念。
创建一个容器组件,它将保存所有子组件的状态。在这里不断更新与数据相关的所有状态。并从这里调用保存功能。
class Parent extends React.Component{
constructor(props){
super(props);
this.state={
name:'',
email:'',
phone:''
}
this.handleFormChanges = this.handleFormChanges.bind(this)
this.handleSubmit = this.handleSubmit.bind(this);
this.reactToSomeChange = this.reactToSomeChange.bind(this)
}
handleFormChanges(ev){
// handle form and set appropriate state
}
handleFormChanges(ev){
// react to change and set state
}
handleSubmit(){
// update your data store db etc.
}
render(){
return(
<MyForm changes={this.handleFormChanges} />
<IfElse changes={this.reactToSomeChange} />
<Button submit={this.handleSubmit} />
)
}
}
// MyFrom component render function
render() {
return (
<form>
<input type="text" name="name" onChanges={this.props.changes} placeholder="Name"/>
</form>
);
// Button component render function
render(){
<button onClick={this.props.submit}>SUBMIT<Button>
}
子组件不需要调用api来保存数据。它应该从在子组件中共享相同状态的单个父组件完成。
您创建了一个 parent 容器。 parent 容器保存状态、所有方法和事件处理程序。所有这些都绑定到 parent.
然后您将状态的方法和部分传递给 children。当他们 children 使用它们时,他们将改变 parent。我创建了一个简单的沙箱来进行演示。您不需要传递整个状态,只需传递 children.
所需的部分