我尝试比较一些不同的框架(angularjs,flux + reactjs和emberjs)做一个最小的待办事项列表应用程序。
您可以在此处找到我的代码:
https://github.com/jurgob/todo_test (在flux目录中,您可以找到实现)
我想以编程方式填写并发送表单,将项目添加到我的待办事项列表中。
此代码适用于angular和emberjs:
$(' .addItemText')VAL。('测试&#39); $(' .addItemText')变化(); $(' .addItemBtn')点击();
但不适用于reactjs。
我也尝试过使用sendkeys jquery插件(https://github.com/dwachss/bililiteRange/blob/master/jquery.sendkeys.js)而没有任何成功。
这是我的助焊剂实现: https://github.com/jurgob/todo_test/blob/master/flux/main.js
另外注意:我已经构建了一个casperjs脚本来从headlerss浏览器中执行它们,并且使用casper.sendKeys函数它适用于所有框架(你可以在这里找到代码https://github.com/jurgob/todo_test/blob/master/tests/maintest.js)< / p>
答案 0 :(得分:0)
该代码应该起作用,但是你可以在这个例子中抛弃jQuery并使用refs。有关参考的更多信息,请访问:https://facebook.github.io/react/docs/more-about-refs.html
实际上,虽然你不应该自己设置属性和触发事件,但是使用state来设置属性,你可以通过XHR提交表单请求,而不是填写表单并模拟点击。
我还简要介绍了你的代码并注意到你是直接操纵道具,这是一种反模式,如果你需要在不同组件之间保持数据同步,可以考虑将组件传回上游,创建一个全局的eventemitter ,或使用像flux这样的模式:https://facebook.github.io/react/blog/2014/05/06/flux.html