小编Lor*_*eiß的帖子

PropTypes形状被标记为必需

所以我试图为我的组件对象添加一个形状.对象从服务器加载,因此从一开始就不存在.但是当我将形状添加到Proptypes时.它不断抛出标记为必需的错误,但事实并非如此.

shapeobjectOf自动添加isRequired值?

TopicsList.propTypes = {
  topicsObject: PropTypes.shape(reportsTopicsObjectResultShape),
};
Run Code Online (Sandbox Code Playgroud)

形状:

export const reportsTopicObject = PropTypes.shape({
 avg_rating_ord: PropTypes.number,
 cards_with_comments: PropTypes.number,
 cards_without_comments: PropTypes.number,
 number_of_questions: PropTypes.number,
 rating_count: PropTypes.number,
 scale_version_id: PropTypes.string,
 scale_id: PropTypes.string,
 last_answered_at: PropTypes.string,
 id: PropTypes.string,
 type: PropTypes.string,
 name: PropTypes.shape(translatedObjectSystem),
 description: PropTypes.shape(translatedObjectSystem)
});

export const reportsTopicsObjectResultShape = PropTypes.shape({
 topics_distribution: PropTypes.shape({
    general: PropTypes.number,
    groups: PropTypes.number,
    people: PropTypes.number
}),
 topic_list: PropTypes.objectOf(reportsTopicObject)
});
Run Code Online (Sandbox Code Playgroud)

我仍然得到错误

Failed prop type: The prop `topicsObject.isRequired` is marked as 
required in `TopicsList`, but its value is `undefined`. …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs react-redux react-proptypes

8
推荐指数
1
解决办法
1055
查看次数

进入 Element 时触发 onMouseLeave

我正在尝试在 React 中模拟悬停事件。所以我正在使用onMouseEnteronMouseLeave 触发状态变化。

不幸的是,当我第一次用鼠标进入 Element 时,两种方法都会被触发......

当我离开元素时,只有 onMouseLeave is triggered. Does anyone knows why the methodonMouseLeave` 在进入元素时被触发。

这是我的代码:

   handleOver(event){
        event.preventDefault();
        console.log('enter');
        if(this.state.open === false){
            this.setState({
                open: true,
                anchorEl: event.currentTarget,
            });
        }
    }
    
    handleLeave(event){
         event.preventDefault();
         console.log('leave');
         if(this.state.open === true){
             this.setState({open: false})
         }
    }
Run Code Online (Sandbox Code Playgroud)
                    <img
                        onMouseEnter={this.handleOver}
                        onMouseLeave={this.handleLeave}
                        src={InfoIcon}
                    />
                    
                    <Popover
                        open={this.state.open}
                        anchorEl={this.state.anchorEl}
                        anchorOrigin={{horizontal: 'right', vertical: 'top'}}
                        targetOrigin={{horizontal: 'left', vertical: 'top'}}
                        onRequestClose={this.handleLeave}
                        muiTheme={darkBaseTheme}
                    />
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

2
推荐指数
1
解决办法
785
查看次数