首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用“content”属性时组件未重新呈现(react-insta-stories)

使用“content”属性时组件未重新呈现(react-insta-stories)
EN

Stack Overflow用户
提问于 2020-01-06 13:14:26
回答 1查看 194关注 0票数 0

我正在尝试使用react-insta-stories创建故事。我使用content属性来显示故事。我正在尝试更改handleclick()中的一个变量的值。这里有两个链接:link 1 link 2。我正在尝试通过更改showViewers的值来显示/隐藏在点击函数上查看过故事的用户列表。我可以看到组件不断地重新渲染,直到故事的进度结束。问题是,当我在故事进度结束后更改showViewers变量的值时,组件不会重新呈现。

代码语言:javascript
复制
{
 content: ({ action, isPaused }) => {
     const handleClick = (e) => {
         showViewers = !showViewers;
         console.log(showViewers);
     };
     return (
        <div onClick={handleClick} className={'story-wrap'}>    
        <img src={require('./img.png')} alt='' className={'story-img'}/>
        {console.log(showViewers)}      //logging value of variable
        {showViewers ? (
            <div className={'viewed-by-list-wrap'}>
                {viewedBy.map((user, index) => (
                    <div className={'viewed-by-list-item'} key={index}>
                     <img src={user.avatar} alt='' />
                        <div className={'user-name'}>
                             <p>{user.name}</p>
                            <p>{user.time}</p>
                        </div>
                    </div>
                ))}
            </div>
        ) : null} 
        <div className={'see-more'} onClick={() => handleClick}>Viewed</div>
        </div>
     );
    },
    header: {
             heading: '_sudo_',
             subheading: 'Posted 32m ago',
             profileImage: require('./img.png') }
}

一旦进程结束,组件停止渲染,就会调用函数并更改变量的值,但上面的组件不会渲染。

我尝试将showViwers保持在组件的状态中。但是,每次更新状态时,故事进度都会从头开始更新。

有没有其他的逻辑来实现这个功能?

EN

回答 1

Stack Overflow用户

发布于 2020-11-19 20:51:23

代码语言:javascript
复制
<div onClick={handleClick} className={'story-wrap'}>    
        <img src={require('./img.png')} alt='' className={'story-img'}/>
        {console.log(showViewers)}      //logging value of variable
        {showViewers ? (
            <div className={'viewed-by-list-wrap'}>
                {viewedBy.map((user, index) => (
                    <div className={'viewed-by-list-item'} key={index}>
                     <img src={user.avatar} alt='' />
                        <div className={'user-name'}>
                             <p>{user.name}</p>
                            <p>{user.time}</p>
                        </div>
                    </div>
                ))}
            </div>
        ) : null} 
        <div className={'see-more'} onClick={() => handleClick}>Viewed</div>
        </div>

您的onClick处理程序不能正常工作,将高z索引值放在外部div中,即在您的案例故事包装中。

代码语言:javascript
复制
.story-wrap{
  z-index: 100000;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59606963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档