小编dco*_*ran的帖子

所有测试运行后,Jest清理干净

在Jest中是否可以运行在所有其他测试完成后运行的清理或拆卸任务?类似于setupFiles允许在任何测试运行之前设置任务的方式.无论测试是否有任何错误,如果这也可以运行,则可以获得奖励积分.

放置afterAll(() => {})在文件的顶层(在任何描述函数之外)仅在该特定文件的测试完成后运行.

用例是我有很多测试文件可以在开发数据库中创建用户,我不想让每个测试文件负责清理和删除用户.编写测试时也会发生错误,因此如果发生清理而不考虑哪种错误更可取.

unit-testing node.js jasmine reactjs jestjs

12
推荐指数
3
解决办法
1万
查看次数

侦听React Native组件中的任何触摸手势

给出一个简单的React Native视图结构,如下所示:

  • TouchableWithoutFeedback(带onPress处理程序)
    • 视图
    • TouchableHighlight(带onPress处理程序)
    • 视图
      • 视图
        • 文本
    • TouchableHighlight(带onPress处理程序)

我希望能够检测到顶层的所有水龙头(TouchableWithoutFeedback),甚至可以检测到其中一个TouchableHighlight onPress处理程序的水龙头.看起来如果用户点击其中一个TouchableHighlights,则没有事件传播到TouchableWithoutFeedback.

在这个简单的视图中,让TouchableHighlights采用与顶级组件对话的处理程序是很简单的,但是我的实际视图太复杂了,我必须让每个子视图传回回拨信息.

根据RN Github(https://github.com/facebook/react-native/issues/6796)的这个问题,似乎这可能不是支持的功能,但我只是想确认一下.

FWIW,我目前只为Android开发.

android react-native react-native-android

6
推荐指数
0
解决办法
445
查看次数

如何删除/卸载嵌套的反应组件

我想卸载一个反应组件,它属于一个包含三个组件的父组件.父组件具有此渲染功能:

render: function () {
  return (
    <div className={classes}>
      <Navbar ref="navbar"/>
      <Home ref="home"/>
      <Footer ref="footer"/>
    </div>
),

handleNavbarClick: function () {
  // remove Home
}
Run Code Online (Sandbox Code Playgroud)

如果用户然后单击导航栏中的链接并且我想要卸载Home组件,我该怎么做?似乎我唯一的选择是做这样的事情(取自react.js:删除一个组件),但这似乎非常严重:

render: function () {
  var home = this.state.remove_home ? null : <Home ref="home />
  return (
    <div className={classes}>
      <Navbar ref="navbar"/>
      {home}
      <Footer ref="footer"/>
    </div>
),

handleNavbarClick: function () {
  this.setState({remove_home: true});
}
Run Code Online (Sandbox Code Playgroud)

这是做适当的反应方式吗?

reactjs react-jsx reactjs-flux

5
推荐指数
1
解决办法
1万
查看次数