React native get View

时间:2017-09-25 13:55:40

标签: reactjs react-native view findviewbyid

我有Scroll View作为标题,列表视图作为Body.So我必须在列表swipe.so上以编程方式滑动滚动视图在我当前的代码中我得到了滚动视图的id我需要实际的组件使用我可以调用,scrollview.scrollTo();方法

render() {
        return (
            <View style={styles.container}>
                <View style={styles.scrollContainer}>

                    <ScrollView
                                ref={'abc'}
                                directionalLockEnabled={false}
                                horizontal={true}>

                        <View style={styles.scrollItemStyle}>
                        <Image source={shield} style={homescreenstyle.imagestyle}/>
                        </View>
                        <View style={styles.scrollItemStyle}>
                            <Image source={shield} style={homescreenstyle.imagestyle}/>
                        </View>
                        <View style={styles.scrollItemStyle}>
                            <Image source={shield} style={homescreenstyle.imagestyle}/>
                        </View>
                        <View style={styles.scrollItemStyle}>
                            <Image source={shield} style={homescreenstyle.imagestyle}/>
                        </View>
                        <View style={styles.scrollItemStyle}>
                            <Image source={shield} style={homescreenstyle.imagestyle}/>
                        </View>
                        <View style={styles.scrollItemStyle}>
                            <Image source={shield} style={homescreenstyle.imagestyle}/>
                        </View>
                        <View style={styles.scrollItemStyle}>
                            <Image source={shield} style={homescreenstyle.imagestyle}/>
                        </View>

                    </ScrollView>

                </View>
                <View style={styles.listcontainer}>

                    <ListView
                        dataSource={this.state.todaysData}
                        renderRow={this.renderRow}
                        onScroll={this.handleScroll}
                        style={styles.container}
                    />


                </View>

            </View>
        );
    }



    renderRow(rowData){

        return (
            <CustomListRowCards
                title={rowData.title}/>
        );
    }

    handleScroll(event: Object) {
        // var input = this.refs.scrollview;

        customViewNativeID.scrollTo(500, 0, true)

        // alert(event.nativeEvent.contentOffset.y);
    }

// CutomViewNativeId返回id ..但我实际上需要视图。实际上我正在寻找像android中的findViewById()一样的东西。我是一个Android开发者..我是React-Native的新手。请发布。建议。提前谢谢你

2 个答案:

答案 0 :(得分:1)

为了访问任何视图,您通常会执行以下操作:

class MyComponent extends React.Component {
   viewOne = null
   //state = {...}

   useViewOne = () => {       
      this.viewOne.doSomething()
   }       

   render() {
      return (
        <View ref={(viewRef) => this.viewOne = viewRef}>
        </View>
      )
   }
}

请注意,this.viewOne中的componentWillMount()将为空,而应在componentDidMount()中使用

答案 1 :(得分:0)

我建议在组件上使用ref prop。您可以找到更多信息here