# Could not connect to development server
- ip、端口 配置无误
 - 服务已开启
 - 无代理
 
误删 debug 用文件,导致 SDK 28 以上的连接服务失败

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  xmlns:tools="http://schemas.android.com/tools">
  <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
  <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
</manifest>
 1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 升级 0.61 以上后原生自动引入问题
android 大概是 0.61以后,会自动导入原生剥, 若不希望自动引入,配置
// react-native.config.js
module.exports = {
  dependencies: {
    'react-native-video': {
      platforms: {
        android: null,
      },
    }
};
 1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 实现模糊效果
参考:https://stackoverflow.com/questions/55422749/how-to-blur-text-in-react-native
<View
  style={{
    height: 3,
    width: 70,
    shadowOpacity: 1,
    shadowColor: '#000',
    shadowOffset: { width: 10, height: 10 },
    shadowRadius: 5,
    elevation: 5,
    borderWidth: 0.5,
    borderColor: "white",
    backgroundColor: "rgba(255, 255, 255, 1)"
  }}
/>
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 滑动+不同距离改变透明度
<Animated.ScrollView
        showsVerticalScrollIndicator={false}
        onScroll={Animated.event(
          [{ nativeEvent: { contentOffset: { y: yOffset.current } } }],
          { useNativeDriver: false }
        )}
      >
        ...
</Animated.ScrollView>  
 1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
配合
yOffset?.current.interpolate({
              inputRange: [0, 100],
              outputRange: [0, 1],
            })
 1
2
3
4
2
3
4
# 代码画三角形
import React from 'react';
import { View } from 'react-native';
function Triangle() {
  return (
    <View style={styles.triangle} />
  );
}
const styles = {
  triangle: {
    width: 0,
    height: 0,
    backgroundColor: 'transparent',
    borderStyle: 'solid',
    borderLeftWidth: 50,
    borderRightWidth: 50,
    borderBottomWidth: 100,
    borderLeftColor: 'transparent',
    borderRightColor: 'transparent',
    borderBottomColor: 'red',
  },
};
export default Triangle;
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# 列表 + 键盘
- 滑动列表键盘不消失的情况,
 - 滑动列表中的点击,需要点两次:设置
disableScrollViewPanResponder 
# 图文混排
- 图文混排,第一个是图片是行高失效
 
# 其他
- 原生视图被优化引发的问题:设置
removeClippedSubviews={false},如只参与布局的视图容易被优化,通过Ref计算当前view的属性失败 - 同向滑动冲突:设置属性
nestedScrollEnabled={true} - react-native debugger 连接问题: https://github.com/jhen0409/react-native-debugger/issues/620
 
# ios
# 换行问题显示问题
图文混排,iPhone XS 换行失败 (有图片和空字符串的时候)
const Title: React.FC<TitleProps> = ({
  style,
  title = new Array(100).fill('中').join(''),
  displayIcon = true,
  icon = 'https://i9.taou.com/maimai/p/32183/8953_6_82VpJ0euQSvlSKXk',
  numberOfLines = 2,
}) => {
  if (!title?.trim()) return null;
  const iconNode = displayIcon && (
    <>
      <Image
        style={{ height: 16, width: 16 }}
        source={{ uri: icon }}
        resizeMode="contain"
      />{' '}
    </>
  );
  return (
    <Text
      style={[styles.text, StyleSheet.flatten(style)]}
      ellipsizeMode="tail"
      numberOfLines={numberOfLines}
    >
      {iconNode}
      <Text style={{ fontSize: 16 }}>{title.trim()}</Text>
    </Text>
  );
};
const styles = StyleSheet.create({
  text: {
    // 指定fontSize时,iPhone xs 换行失败
    fontSize: 16,
    lineHeight: 18,
    color: '#15161F',
    fontWeight: 'bold',
  },
  icon: {
    height: 16,
    width: 16,
  },
});
 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42