故障排查
动画不播放、字体不对、代理把你的界面重新做了主题。五个真实常见的问题。
动画不播放
这是迄今为止最常见的问题。Reanimated 需要它的 Babel 插件,且必须放在 plugins 数组的最后。没有它,带动画的组件会直接渲染成最终状态,什么都不会动,也不会有任何报错。
// babel.config.js
module.exports = function (api) {
api.cache(true)
return {
presets: ['babel-preset-expo'],
plugins: ['react-native-reanimated/plugin'], // must be LAST
}
}然后清除缓存并重启打包器:npx expo start -c。普通重启是不够的。
字体看起来不对
字体应在应用根目录加载一次,而不是在某个界面内部。每个设计都会导出一个 fonts 对象,把它展开到你根目录中的 useFonts 里,并在其解析完成前保持启动画面。如果跳过这一步,文字会回退到系统字体,每种字重看起来都会略微不对。
import { useFonts } from 'expo-font'
import * as SplashScreen from 'expo-splash-screen'
import { fonts } from './components/clean-settings/screen'
SplashScreen.preventAutoHideAsync()
export default function App() {
const [loaded, error] = useFonts({ ...fonts })
useEffect(() => {
if (loaded || error) SplashScreen.hideAsync()
}, [loaded, error])
if (!loaded && !error) return null
return <YourApp />
}代理把它改成了我应用的主题
让它撤销更改,并在一个全新对话中重新粘贴提示词。不要适配的指令存在于每一个提示词中,但在一个代理已经吸收了你代码库习惯的长会话中,这条指令可能会被覆盖。干净的上下文是最可靠的解决办法。
在 Expo Go 中崩溃
检查该设计的徽章。少数设计使用了 Expo Go 未内置的原生模块,这些需要 development build。卡片上的徽章、详情页上的徽章,以及提示词本身,都会在你复制之前说明这一点。
npx expo run:ios代理在中途停止并留下了占位符
说出文件名,让代理完成它截断的文件。提示词明确禁止占位符,但在上下文压力下代理偶尔仍会这样做,长流程是常见诱因。不会有任何丢失,粘贴的其余部分依然完整。
仍然没解决
请附上设计的标识和你的代理做了什么,发邮件至 support@clevens.com。同一个提示词两次以同样方式失败,属于提示词本身的缺陷而不是你环境的问题,会得到修复。