将属性从父级传递到子级组件

时间:2020-05-19 21:07:29

标签: javascript reactjs

如果确实有人问过这个问题,我会提前道歉,我有一个由子组件组成的组件,但是后来我发现我需要引用父组件具有{type}的属性之一,是有没有一种方法可以访问MetaInfoDocViewer中的类型?

我尝试在YearlyTaxStatement中创建一个状态并将该状态传递给metaDocViewer: <MetaInfoDocViewer type={this.state.type}/>,但该值未定义

export default class YearlyTaxStatementOverview extends React.Component {

render() {
    return <GeneralDocPresenter type={'income'}
                                fetchMetaDocs={() => getMetaInfoByType('income-tax')}
                                loadDocument={(id) => getYearTaxStatement(id)}
                                eventManager={new EventManager()}
                                settings={{
                                    columnSize: 3
                                }}
                                childComponents={{
                                    metaDocViewer: MetaInfoDocViewer,
                                    metaView: MetaInfoView
                                }}
    />
}


class MetaInfoDocViewer extends React.Component {

state = {
   send: false
};

render() {
    const sendModal = <SendModal type={i need type here } onClose={() => {this.setState({send: false})}}
                                 docIds={this.props.selectedDocsStore.selectedDocs}/>;

1 个答案:

答案 0 :(得分:0)

说实话,我确实无法遵循您的代码。但是答案是您可以将其作为道具发送。

或者如果您必须在多个地方使用它,则可以将其保存在Redux Store中,然后可以从连接它的每个组件访问该状态。

const mapStateToProps = (state) => {
  return {
    type: state.type
  };
};

    .
    .
    .
export default connect(mapStateToProps)(COMPONENT NAME);