首页 > 解决方案 > 使用 onLayout 更改边界半径

问题描述

尝试在正方形内绘制一个圆圈,并且需要动态边框半径,因为宽度和高度是百分比。setState功能不起作用,我收到以下错误:Cant find variable : setState. 到底是怎么回事 ?

const styles = StyleSheet.create({
square:{
        backgroundColor : 'blue',
        width: Dimensions.get('window').width,
        height: Dimensions.get('window').width * 0.3,
        
        flexDirection: 'row',
        paddingLeft: '5%',
        paddingRight : '5%',

    },
    Circle: {
      width: '30%',
      height: '30%',
      resizeMode: 'cover',
      backgroundColor: 'black',
      justifyContent: 'center',
      overflow: 'hidden',
      flex: 0.35
    },
};
const circleInsideSquare = props =>{
    return(
        <View>
          <View style={styles.square}>
                <View style={styles.Circle} onLayout={(event) => { setState({borderRadius: Math.round((event.nativeEvent.layout.width+event.nativeEvent.layout.height)/2)}) }} >
                </View>
        </View>
       </View>
    );
};

我尝试将其更改为this.setState也失败了

标签: react-native

解决方案


推荐阅读