按下反应本机矢量图标后如何更改图标名称

时间:2019-05-19 21:11:30

标签: javascript reactjs react-native redux react-native-vector-icons

我正在使用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时,它是未定义

-

没关系,现在:D,我只是在setState时编辑图标的名称,然后重命名状态的名称

现在新的Q是 当我按下图标时,将图标更改为“ ios-heart-”,现在,如果我想再次按下,则希望更改为“ ios-heart-empty”

我想要执行的功能的想法是“添加到收藏夹并从收藏夹中删除”

2 个答案:

答案 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