React Native能否将Tailwind简写为tw?导入tw报非函数错如何解决
问题根源
TypeError: (0, _tailwindRn.tw) is not a function报错由tailwind-rn版本不匹配导致:你参考的教程使用的是3.x及更早版本的tailwind-rn,该版本支持直接命名导入tw方法,但当前npm默认安装的4.x版本重构了导出API,不存在直接导出的tw属性,直接调用就会报undefined。
修复方案
两种方案选一种即可:
方案1:适配新版tailwind-rn(推荐)
- 安装完tailwind-rn依赖后,先在项目根目录执行配置生成命令完成初始化:
执行完成后根目录会生成npx create-tailwind-rntailwind.config.js、tailwind.json两个配置文件,跳过这步后续仍会报方法不存在错误。 - 修改App.js中的导入逻辑,新版需要通过内置的create方法初始化tw实例,修正后的完整代码如下:
import { StatusBar } from 'expo-status-bar'; import { StyleSheet, Text, View } from 'react-native'; // 删除旧的错误导入:import {tw} from 'tailwind-rn'; import { create } from 'tailwind-rn'; // 导入上一步生成的配置文件 import utilities from './tailwind.json'; // 初始化生成可调用的tw方法 const { tw } = create({ utilities }); export default function App() { return ( <View style={tw("justify-center items-center")}> <Text>Open up App.js to start working on your app!</Text> <StatusBar style="auto" /> </View> ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#fff', alignItems: 'center', justifyContent: 'center', }, }); - 重启Metro打包服务,建议加
--clear参数清除旧缓存,避免缓存导致的异常。
- 安装完tailwind-rn依赖后,先在项目根目录执行配置生成命令完成初始化:
方案2:降级到教程对应旧版本
如果不想修改现有代码、完全对齐教程环境,可以卸载当前高版本,安装3.x稳定旧版:npm uninstall tailwind-rn npm install tailwind-rn@3.0.1安装完成后重启项目,原有代码无需任何修改即可正常运行。注意3.x版本已停止维护,后续不会新增特性、修复兼容性问题。
内容的提问来源于stack exchange,提问作者shange
相关产品推荐
相关产品推荐

