React Native:在Navigator Pop上更改组件(文本)

时间:2016-04-03 02:03:50

标签: android ios reactjs react-native

我正在创建一个组件/视图,其中包含可从类似于表视图中选择的事物列表。

当我在View A中时,我可以通过导航器推送来跳转到此表视图。一旦选择了一个项目,我就会弹出一个。但是,我希望使用适当的值更新视图A中的文本组件。

我正在考虑传递对此文本组件的引用,但听起来不对。我可以通过其他方式实现这一目标吗?

我找不到任何适用于这两个平台的表格视图,如果您有任何好的建议,请告诉我。

2 个答案:

答案 0 :(得分:0)

我通过将{this}作为prop传递给表视图并在表视图中调用this.props.parent.setState({selection:selectedThing})来解决它。

我认为setState会重新渲染整个视图并摆脱任何用户输入但似乎只重新渲染已更改的组件

答案 1 :(得分:0)

实现此目的的React方法是将transparent; #efefef; transparent; #efefef; 函数传递给命名属性,假设在这种情况下callback

onSelect

创建选择器组件:

MyParentComponent extends Component {
    ...
    MySelectHandler(value) {
        this.setState({
            valueSelected: value
        });
    },
    ...
}

在你的组件中:

<MyCustomTableView onSelect={this.MySelectHandler}/>

考虑到您的“重新呈现”问题,React仅更新根据以前的状态更改的组件。由于您的输入可能不依赖于状态,因此它们不会更新,因为它们没有任何变化。

如果要在更新MyCustomTableView extends Component { ... onValueSelected(value) { this.props.onSelect(value); } ... } 密钥状态时清除所有输入,可以使用生命周期方法valueSelected,并在每次更新值后手动清除输入。

componentDidUpdate()