开发者问题收集

TypeError:未定义不是一个对象(评估'theme.spacing[radius]')

2022-05-13
2781

我正在使用 React Native Elements 库来构建 UI。我正在尝试创建一个带有图标的按钮。我最初只是从网站上复制了此代码,未做任何更改,以查看按钮是否有效。

import { Button } from "@rneui/themed";

<Button
              title="Basic Button"
              buttonStyle={{
                backgroundColor: 'rgba(78, 116, 289, 1)',
                borderRadius: 3,
              }}
              containerStyle={{
                width: 200,
                marginHorizontal: 50,
                marginVertical: 10,
              }}
 />

我在应用程序中不断收到此错误

TypeError: undefined is not an object (evaluating 'theme.spacing[radius]')

该错误来自 ui.library 附带的 Button.js 内部。我不确定是什么原因造成的。我设法使用库中的输入组件而没有任何问题,因此我认为我正确安装了它。那么是什么原因导致了这个按钮问题?

3个回答

@rneui/base 导入 Button 模块,而不是从 @rneui/themed 导入

touri
2022-05-14

为什么不使用 touchOpacity 和 icon 创建按钮 这比使用库更容易

TNTC
2022-05-13

我也遇到过这个问题。您可以通过将 react-native-elements (@rneui) 中的 ThemeProvider 组件包装在应用程序的根目录中来解决此问题。例如;

<ThemeProvider theme={myTheme}>
  <Button title="My Button" />
</ThemeProvider>

react-native-elements 的官方迁移指南: https://reactnativeelements.com/docs/migration_guide

Bart
2022-05-17