Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在react native中创建跨平台图标?_Javascript_Reactjs_React Native_React Native Android_React Native Ios - Fatal编程技术网

Javascript 如何在react native中创建跨平台图标?

Javascript 如何在react native中创建跨平台图标?,javascript,reactjs,react-native,react-native-android,react-native-ios,Javascript,Reactjs,React Native,React Native Android,React Native Ios,我正在建立一个注册表单,我想添加图标,但图标在不同的平台上看起来应该不同。例如,如果我使用Ionicons,它应该在ios设备上显示ios person,在android设备上显示md person。 如何构建这样的自定义组件,以便在注册屏幕表单中导入它,并根据文本输入添加一个图标,如人名图标。您可以根据平台确定图标,如下所示: import { Platform } from 'react-native'; <Ionicons name={Platform.select({

我正在建立一个注册表单,我想添加图标,但图标在不同的平台上看起来应该不同。例如,如果我使用Ionicons,它应该在ios设备上显示ios person,在android设备上显示md person。
如何构建这样的自定义组件,以便在注册屏幕表单中导入它,并根据文本输入添加一个图标,如人名图标。

您可以根据平台确定图标,如下所示:

import { Platform } from 'react-native';

<Ionicons
  name={Platform.select({
    ios: 'ios-person',
    android: 'md-person',
  })}
/>
可能是一个可重用的组件

const Icon = ({ name }) => (
  <Ionicons 
    name={`${Platform.OS === "ios" ? "ios" : "md"}-${name}`}
  />
)

// Usage
<Icon name="person" />

谢谢,成功了!!我使用了第一种方法。我还试图改变的大小图标的基础上,我使用这个平台的大小方法。size={Platform.select{ios:'24',android:'34',}}但是它在android上不起作用,而在我试过的ios上运行得很好snack@user9824674-检查最后一个代码段,它将更改名称和大小。我个人会创建一个可重用的组件,就像第三个代码段一样,你说得对!!一个定制的可重用组件总是好的,但是我如何在第三个组件中添加大小呢?我用的是正确的方式还是尺寸?大小={${Platform.OS==ios?25:35}-${size}
const Icon = ({ name }) => (
  <Ionicons 
    name={`${Platform.OS === "ios" ? "ios" : "md"}-${name}`}
  />
)

// Usage
<Icon name="person" />
<Ionicons
  {
    ...Platform.select({
      ios: {
        name: 'ios-person',
        size: 25,
      },
      android: {
        name: 'md-person',
        size: 35
      }
    })
  }
/>