父组件传入的值需要在子组件中修改

假设父组件是一个收货地址信息,子组件是区域信息,子组件的默认值由父组件传入,并且子组件选择区域后,父组件中的收货地址的区域信息要跟着修改,需要在向子组件传入区域信息的时候,也要传入区域信息改变事件
父组件:

import React from 'react';
import StateInfo from "./stateInfo";
class AddressInfo extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            "id": 46,
            "code": "NY",
            "name": "New York"
        }
        this.stateRef = React.createRef()
    }

    handleChangeState = (state => {
        this.setState(state )
    })

    render() {
        return (
             <StateInfo
                            ref={this.stateRef}
                            name={this.state.state.name}
                            handleChangeState={this.handleChangeState}/>
        );
    }
}

export default AddressInfo;

子组件:

import React from 'react';
class StateInfo extends React.Component {
    constructor(props) {
        super(props);
        this.state = {
            list: []
        }
    }

    handleGetstates = (countryId) => {
        request(url).then(body => {
            const list = JSON.parse(body)
            this.setState({ list })
            console.log(list)
            if (list.length > 0)
                this.props.handleChangeState(list[0])
            else
                this.props.handleChangeState({state: '', id: 0, code: ''})
        }).catch(err => {
            console.log(err)
        })
    }

    render() {
        return (
            <div className="dropdown">
                {
                        this.state.list.map(state => (
                            <a
                                key={state.id}
                                className="dropdown-item"
                                href="#"
                                onClick={() => {this.props.handleChangeState(state)}}>
                                {state.name}
                            </a>
                        ))

                    }
            </div>
        );
    }
}

export default StateInfo;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

97年的典藏版

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值