使用React.createContext将数据从父组件状态传递到子组件

时间:2019-10-01 04:37:17

标签: javascript reactjs

我有一个包含状态的组件,并将状态数据传递到另一个组件中,我使用静态contextType抛出状态数据,但是数据未到达预期的组件,您认为这是错误的?谢谢

这是我的父组件

func getCurrentUser(_ completion: @escaping (SomeRequest?) -> ()) {
    let path = "/somePath"
    AF.request("\(url)\(path)").responseData { response in
        switch response.result {
        case .success(let value):
            print(String(data: value, encoding: .utf8)!)
            completion(try? SomeRequest(protobuf: value))
        case .failure(let error):
            print(error)
            completion(nil)
        }
    }
}

这是我的孩子组成部分

export const MyContext = React.createContext();

export class MerchantByPromo extends Component {
  constructor(props) {
    super(props);
    this.state = {
      dataPromo: [],
      loading: true
    };
  }

  async componentDidMount() {
    const merchant_id = this.props.match.params.id_merchant
    await Api.post('language/promo-voucher-by-merchant', { MERCHANT_ID: merchant_id })
      .then((response) => {
        if (response.data.STATUS_CODE === '200') {
          this.setState({
            dataPromo: response.data.DATA,
            loading: false
          });
        }
      })
  }

我总是收到这样的错误消息:“ TypeError:render不是函数”,解决方案是什么?

1 个答案:

答案 0 :(得分:0)

  <MyContext.Consumer>
    {() => <p>tes</p>}
  </MyContext.Consumer>

对此进行更改并检查