我正在使用这个包,它与Expo兼容:
https://github.com/gorhom/react-native-bottom-sheet
我正在做这个视频中显示的:
https://www.youtube.com/watch?v=SgeAfiz_j_w
除了我写:
const sheetRef = useRef(null);
代替:
const sheetRef = useRef<BottomSheet>(null);
因为我没有使用typescript
我得到以下错误:
Cannot read properties of undefined (reading 'toString');
我已经安装了正确的依赖项,我错过了什么?
安装:
npm install -D @expo/webpack-config
并使用以下代码创建webpack.config.js:
const createExpoWebpackConfigAsync = require('@expo/webpack-config');
module.exports = async function (env, argv) {
const config = await createExpoWebpackConfigAsync(
{
...env,
babel: { dangerouslyAddModulePathsToTranspile: ['@gorhom'] },
},
argv
);
return config;
};
这是react-native-reanimated安装的一个问题。为了解决这个问题,你必须在babel.config.js
中添加插件。module.exports = {
presets: [
...
],
plugins: [
...
'react-native-reanimated/plugin',
],
};
https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/installation/babel-plugin
之后,如果你运行expo start -c来清除缓存,它应该可以工作。