首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用酶设置redux连接反应组件的状态

使用酶设置redux连接反应组件的状态
EN

Stack Overflow用户
提问于 2020-06-22 14:45:07
回答 1查看 158关注 0票数 2
代码语言:javascript
复制
import configureMockStore from 'redux-mock-store';
import NavBar from '../components/NavBar/NavBar';

const mockStore = configureMockStore(middlewares);
const store = mockStore(initialState);

wrapper = mount(
    <BrowserRouter> 
        <Provider store={store}>
            <NavBar {...props} />
        </Provider>
    </BrowserRouter> 
);

如何更新包装器中存在的NavBar组件的状态?

我尝试使用wrapper.setState({displayMenu:true})更新,但它没有更新,因为我认为包装器是组件与提供者的包装,所以NavBar的状态没有更新。

EN

回答 1

Stack Overflow用户

发布于 2020-10-28 00:30:48

为了解决这个问题,你可以这样写:

代码语言:javascript
复制
import ConnectedNavBar, { NavBar } from '../components/NavBar/NavBar';

const wrapper = mount(
    <Provider store={store}>
        <ConnectedNavBar/>
    </Provider>
);

const navBarInstance = result.find(NavBar).instance() as NavBar;
navBarInstance.setState({displayMenu:true});

获取有关redax-component的信息

代码语言:javascript
复制
navBarInstance.props
navBarInstance.state

注意!注意组件是如何导入的

代码语言:javascript
复制
import ConnectedNavBar, { NavBar } from '../components/NavBar/NavBar';

并按如下方式导出redax组件:

代码语言:javascript
复制
export class NavBar extends Component<Props, State>{} 
/*...*/
export default connect<StateProps>(mapStateToProps)(NavBar);

我希望这能解决你的问题

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62508808

复制
相关文章

相似问题

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