亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 React.js 中的另一個類組件調用函數

從 React.js 中的另一個類組件調用函數

大話西游666 2022-01-01 20:31:18
我想將我的渲染分成幾個部分??隙ㄓ幸恍┐a位丟失,因為我的真實代碼有一千多行,例如這個。基本上我希望能夠調用Page2和使用這些函數,handleSubmit并且handleChange在Page2. 但是當我調用 Page2 時,代碼說他沒有找到 handleSubmit 和 handleChange。我希望它像我沒有將代碼分成幾個函數一樣工作。如果有人有想法:/所以我像這樣分離了我的代碼:頁面 1.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>           );        }      }    感謝您的任何回應
查看完整描述

2 回答

?
慕慕森

TA貢獻1856條經驗 獲得超17個贊

你需要渲染page2為反應組件,并將這些函數引用作為道具傳遞,就像這樣。


<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>

      )

    }

}


查看完整回答
反對 回復 2022-01-01
?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

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

在 Page2 代碼上


export default  render2 = (props) => {

  return <div>

        <Input type="number" step="0.01" name="test2" onChange={props.handleChange} value= 

               {props.test || ''}/> </Col>

        <Button type="submit" handleSubmit={props.handleSubmit}> Update </Button>

</div>

};


查看完整回答
反對 回復 2022-01-01
  • 2 回答
  • 0 關注
  • 311 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號