我有 svg 图标 这些是<A/>
, <B/>
, <C/>
.
我想在中使用这些图标<MyButton>
.
这就是我现在使用的方式。
我的按钮.js
function MyButton(props) {
return (
<TouchableOpacity>
{props.icon}
<Text>{props.title}</Text>
</TouchableOpacity>
);
}
App.js
import A from "./A";
import B from "./B";
import C from "./C";
function App() {
return (
<MyButton icon={<A/>} title={'Example'} />
);
}
我希望可以使用字符串选择图标,而不是使用道具发送它们。我怎样才能做到这一点?
_App.js
function App() {
return (
<MyButton icon={"a"} title={'Example'} />
);
}
您可以遵循此方法。创建一个图标对象,然后您可以将图标作为字符串从 props 传递到 MyButton 组件。
function MyButton(props) {
const icons = {
"a": require("./A"),
"b": require("./B"),
"c": require("./C")
}
const IconToRender = props.icon ? icons[props.icon] : null;
return (
<TouchableOpacity>
{
IconToRender ? <IconToRender/> : null
}
<Text>{props.title}</Text>
</TouchableOpacity>
);
}
Usage
<MyButton icon="a" title="My Title" />
如果有帮助请在评论中告诉我!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)