我正在使用react-native-vector-icons
我想在第一次加载屏幕时更改图标的名称,我可以很好地看到该图标,但是按下该按钮后它不再起作用,我会看到问号? >
this.state={
favIcon:"heart-empty"
}
<Icon name={`ios-${favIcon}`} style={{ backgroundColor: "red" }} size={30} color="#fff" onPress={() => this.setState({ favIcon: "heart" }, alert(favIcon))} />
有任何想法来处理名称以接受变量吗?
当我登录this.state.FavIcon
时,它是未定义!
-
现在新的Q是 当我按下图标时,将图标更改为“ ios-heart-”,现在,如果我想再次按下,则希望更改为“ ios-heart-empty”
我想要执行的功能的想法是“添加到收藏夹并从收藏夹中删除”
答案 0 :(得分:1)
您可以执行以下操作:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<script>
function getCalendarEvents() {
google.script.run
.withSuccessHandler(function(eObj){
//load html with data from eObj
})
.listCalendarEvents();
}
function listAllEvents() {
}
</script>
<div id="data"> Hello! </div>
<button onclick="getCalendarEvents();">Run Function</button>
function listCalendarEvents() {
//get all of the events
return eObj;
}
constructor(props) {
super(props)
this.state={
providerId: '',
providerName: '',
providerService: '',
fav: false
}
this.ref = firebase.database().ref(`favorites/${firebase.auth().currentUser.uid}`);
}
componentDidMount() {
this._onFavourite = this.ref.on('child_added', () => {
this.setState({
fav: true
}, alert("Added To Favorite List"))
})
this._onUnFavourite = this.ref.on('child_removed', () => {
this.setState({
fav: false
}, alert("Removed from Favorite List"))
})
}
componentWillUnmount() {
if (this._onFavourite) {
this.ref.off('child_added', this._onFavourite);
}
if (this._onUnFavourite) {
this.ref.off('child_removed', this._onUnFavourite);
}
}
希望对您有帮助。
答案 1 :(得分:0)
onPress
仅适用于Icon.Button
,不适用于Icon
。有关Icon.Button
的更多信息,请参见https://github.com/oblador/react-native-vector-icons#iconbutton-component。