打字稿反应成分获得返回值

时间:2019-02-11 09:15:27

标签: reactjs typescript

如何通过这种方式从组件类中获取结果?

这就是我如何称呼ExampleSelectionComponent,它向我展示了我想看到的东西,但需要在该类上获得exampleSelectionId的价值。

public render() {
  const { exampleId  } = this.state;
  return(
    <div>
      <tr>
          <ExampleSelectionComponent id="ExampleSelection" 
           exampleSelectionId={exampleId} 
           tabId={this.props.tabId}/>
      </tr>
    </div>
  )
}

2 个答案:

答案 0 :(得分:0)

您可能必须传递一种更新此父组件状态的方法。

class ParentComponent extends Component<any, any> {
    constructor(props:any){
        super(props);

        this.state = {
            exampleId: 123,
        }
    }

    private setSelectionId(newId: number) {
        this.setState({exampleId: newId});
    }

    public render() {
        const {exampleId} = this.state.exampleId;
        return (
            <div>
                <tr>
                    <ExampleSelectionComponent id="ExampleSelection"
                                               updateSelectionId={this.setSelectionId}
                                               tabId={this.props.tabId} />
                </tr>
            </div>
        )
    }
}

然后在您要在父级中对其进行更改时,从ExampleSelectionComponent调用updateSelectionId内进行。

答案 1 :(得分:0)

是的!你是对的,我需要解释更多, 我有两个.tsx(Example和ExampleSelectionComponent)。我正在从Example.tsx调用我的ExampleSelectionComponent.tsx。

ExampleSelectionComponent.tsx有一个TextField,我可以更改它。当我更改它时,我正在更新其中的状态值(值)。

这就是我想要的:如果我在浏览器上的ExampleSelectionComponent.tsx中更改了文本字段值,然后在Example.tsx中单击了DefaultButton。它可以使getExampleSelectionComponentTextFieldValue()起作用,我想将ExampleSelectionComponent TextField值放在那里。

我在下面的课程中添加了两张图片;

Example.tsx

ExampleSelectionComponent.tsx