gpt4 book ai didi

javascript - 从 React.js 中的另一个类组件调用函数

转载 作者:行者123 更新时间:2023-12-01 00:27:11 25 4
gpt4 key购买 nike

我想将渲染分成几个部分。

一定是少了一些代码位,因为我的真实代码有一千多行,比如这个。

基本上,我希望能够调用 Page2 并使用 Page2 中的函数 handleSubmithandleChange >。但是当我调用Page2时,代码说他找不到handleSubmit和handleChange。我希望它能够像我没有将代码分成几个函数一样工作。如果有人有想法:/

所以我将代码分开:

Page1.js:

  import {Page2} from './Page2';

const initialState = { test:'', test2: ''};


export default class Page1 extends Component {
constructor(props) {
super(props);
this.state = initialState;
this.handleSubmit = this.handleSubmit.bind(this);
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
const InputValue = event.target.value;
const stateField = event.target.name;
this.setState({
[stateField]: InputValue,
});
console.log(this.state);
}

async handleSubmit(event) {
this.setState({ loading: true });
event.preventDefault();
const { test= ''} = this.state;
await axios.post(' (endpoint API)',
{ key1: `${test}`);
}
render() {
return (
<Tabs selectedIndex={this.state.tabIndex} onSelect={tabIndex => this.setState({ tabIndex })}>
<TabList>
<Tab >Non Dynamique</Tab>
<Tab> Automation </Tab>
</TabList>
<TabPanel>
<Input type="number" step="0.01" name="test" onChange={this.handleChange} value=
{this.state.test || ''}/> </Col>
<Button type="submit"> Update </Button>
</TabPanel>
<TabPanel>
{this.Page2}

</TabPanel>
);
}
}

第 2 页:

    export class Page2 extends Component {
render() {
return(
<Input type="number" step="0.01" name="test2" onChange={this.handleChange} value=
{this.state.test || ''}/> </Col>
<Button type="submit"> Update </Button>
);
}
}

感谢您的回复

最佳答案

您需要将 page2 渲染为 React 组件,并将这些函数引用作为 props 传递,如下所示。

<Page2 handleChange={this.handleChange} handleSubmit={this.handleSubmit} />

在Page2组件中,您可以在props中获取上述函数引用。

export default class Page2 extends React.Component {
constructor(props) {
super(props);
this.state= {

}
}

render() {
const { handleSubmit, handleChange} = this.props
return(
<div>
<Input type="number" step="0.01" name="test2" onChange={handleChange} value=
{this.state.test || ''}/>
<Button type="submit" onSumbit={handleSubmit}> Update </Button>
</div>
)
}
}

关于javascript - 从 React.js 中的另一个类组件调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58875684/

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