小编Lil*_*ilp的帖子

测试自定义事件本地响应

我正在使用Jest和Enzyme进行测试.我测试正常事件没有问题,但我正在努力找到如何触发和测试来自Native Modules的组件中的事件的正确方法.在我的Jest设置中,我有以下内容:

jest.mock('NativeEventEmitter', () => class MockNativeEventEmitter{
  addListener = () => jest.fn()
  removeListener = () => jest.fn()
  removeAllListeners = () => jest.fn()
});
Run Code Online (Sandbox Code Playgroud)

但是,我不确定在测试中我如何实际调度事件.因此,例如,当用户摇动设备时,我有一个Native模块.在组件本身内,这样设置如下:

shakeEvents: ['shaken],
deviceShakeEmitter: {},

componentDidMount() {
  this.deviceShakeEmitter = new NativeEventEmitter(Shake)
  this.deviceShakeEmitter.addListener('shaken', this['shaken'])
 },
Run Code Online (Sandbox Code Playgroud)

我知道对于内置事件我可以使用jest.simulate('press')等,但对于自定义事件,我很难理解我如何在测试中处理这个问题.

jestjs react-native

7
推荐指数
1
解决办法
2209
查看次数

活动模型禁止属性错误

有人能够帮助我理解这个错误.我正在尝试按照构建Web应用程序教程在rails中创建联系表单.我按照步骤生成了一个消息支架.然后我修改了我的路线.接下来它说要把它放到消息控制器show动作中.

if @message.save
  flash[:notice] = 'Thanks for Your Message'
  format.html { redirect_to root_path }
Run Code Online (Sandbox Code Playgroud)

我已经这样做了,我在MessagesController中得到以下错误ActiveModel :: ForbiddenAttributesError #create ActiveModel :: ForbiddenAttributesError

这是我的消息控制器文件

class MessagesController < InheritedResources::Base 
  def show
     if @message.save
      flash[:notice] = 'Thanks for Your Message'
      format.html { redirect_to root_path }
     end
  end
end
Run Code Online (Sandbox Code Playgroud)

我的路线文件如下

# devise_for :users
Run Code Online (Sandbox Code Playgroud)

资源:产品做资源:订单,只有:[:new,:create] #tells rails需要产品ID号结束

  # get 'pages/payment'

  get 'home/about'

  get 'messages/new'

  get 'seller' => "products#seller"

  get 'sales' => "orders#sales"

  get 'static_pages/productlanding'

  get "content/veg"

  get "content/fruit"

  get "content/mix"

  get 'subscriptions/new'

  root 'static_pages#home'
Run Code Online (Sandbox Code Playgroud)

ruby activerecord ruby-on-rails ruby-on-rails-4

4
推荐指数
2
解决办法
2万
查看次数

动态常量赋值Ruby

我一直在关注创建打字挑战的教程.我小心翼翼地遵循这一点.当我尝试从命令行运行脚本时,我不断收到以下错误,我不明白.我认为这个教程可能已经很老了,但是如果有人能给我一些指导来理解它,那么我可以解决它,那将是非常感激的!我从命令行运行脚本时得到的错误如下....

Typechallenge.rb:89: dynamic constant assignment
    Console_Screen = Screen.new
                        ^
typechallenge.rb:90: dynamic constant assignment
    Typing_Test = Test.new 
Run Code Online (Sandbox Code Playgroud)

脚本本身如下......

#Script name: Typing Challenge
#Description: Demonstrating how to apply conditional logic in order to analyze user input and control
#the execution of the script through a computer typing test.
class Screen

def cls
    puts ("\n" * 25)
    puts "\a"
end

def pause
    STDIN.gets
end

end

class Test

def display_greeting

    Console_Screen.cls 

    print "\t\t Welcome to the Typing Challenge" +
    "\n\n\n\n\n\n\n\n\n\n\n\n\nPress Enter to " + …
Run Code Online (Sandbox Code Playgroud)

ruby

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

如何在Rails 4中创建优惠券代码生成器

谁能建议任何方式来生成rails 4的优惠券代码?它使用条带作为支付解决方案从零开始的电子商务应用程序?

ruby gem ruby-on-rails e-commerce

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

在Javascript中使用reduce来对空数组和非空数组求和

我试图找到一种方法来编写一个函数,该函数总结了数组中的所有元素.我一直在尝试使用JavaScripts reduce函数来实现它.我遇到的问题是我希望这个函数既可以在空数组上运行,也可以在元素作为单独场景的情况下运行.以下示例将测试用例传递给空数组,但是当数组包含元素时则不传递,反之亦然.

function sum (numbers) {
  numbers = ['a', 'b', 'c'];
  return numbers.reduce(function (x, y, i) {
  return x + y + i; 
}), 0 };
Run Code Online (Sandbox Code Playgroud)

我正在查看reduce函数的签名,并尝试在此基础上实现这一点,但在我的知识中似乎缺少某些东西.

function (previousValue, currentElement, currentIndex, array)
Run Code Online (Sandbox Code Playgroud)

javascript arrays

0
推荐指数
1
解决办法
260
查看次数

JavaScript For循环使用方括号

我理解JavaScript中For循环的基本结构.我在看下面的例子:

function howMany(selectObject) {
  var numberSelected = 0;
  for (var i = 0; i < selectObject.options.length; i++) {
    if (selectObject.options[i].selected) {
      numberSelected++;
    }
  }
  return numberSelected;
}
Run Code Online (Sandbox Code Playgroud)

在第四行,我不明白你会[i]在术语中称什么 ,为什么它是方括号?

javascript

-4
推荐指数
1
解决办法
786
查看次数