react-native - 使用 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
也失败了
解决方案
推荐阅读
- javascript - 在画布中绘制裁剪图像
- c++ - C++ 中的内存模型:为什么 struct 中的两个整数分配在同一个内存位置?
- azure-devops - Azure Data Studio - 尝试从远程连接 Postgres DB
- laravel - 带有 sqlsrv 的 Laravel 电子邮件验证 5.8
- pyspark - 'Param' 对象上的错误不可调用 - 用于推荐系统的 Apache Spark
- json - JQ:如何将一个文件的内容放在某个键下的另一个文件中?
- php - 从 foreach 循环中逐块创建数组
- go - 如何知道 goroutine 是否仍然存在?
- hyperledger-fabric - Hyperledger Fabric 区块链重组或分叉
- angular - Ionic3:找不到“object”类型的不同支持对象“[object Object]”。NgFor 仅支持绑定到 Iterables,例如 Arrays