小编kul*_*boj的帖子

React:如何监听子组件事件

我有一个组件,假设它包含一个表单.该表单具有子组件,它们本质上是用于输出文本输入和选择菜单的UI小部件.

选择菜单组件有点花哨,并使用onChange事件进行一些状态维护.

我的问题是; 如何从父(表单)组件挂钩到选择菜单的onChange事件?我无法通过道具传递更改,因为我已经在select组件中指定了onChange并且我不想覆盖它.

例:

var Form = React.createClass({

    handleSelectChange: function(){
        // Do something when <Select /> changes
    },

    render: function () {    

        var selectMenuOptions = [
            {label: 'Choose...', value: ''},
            {label: 'First option', value: 'one'},
            {label: 'Second option', value: 'two'}
        ];
        return (
            <form>
                <Select name="selectMenu" id="selectMenu" options={selectMenuOptions} />
            </form>
          );
        }
});

var Select = React.createClass({

    getDefaultProps: function() {
        return {
          options: [],
          className: "select"
        };
      },

    getInitialState: function () {
        return {
            buttonText: 'Loading...',
            defaultValue: null 
        }; …
Run Code Online (Sandbox Code Playgroud)

javascript reactjs

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

React组件视图未获得更新

我有一个React组件来管理列表中的多个手风琴,但是当我更新一个孩子时,在React dev工具上,它显示了更新的文本,但在视图/ ui上,它没有更新.请指教.

var AccordionComponent = React.createClass({
  getInitialState: function() {
  var self = this;
  var accordions = this.props.children.map(function(accordion, i) {
   return clone(accordion, {
    onClick: self.handleClick,
    key: i
  });
});

  return {
    accordions: accordions
  }
},
handleClick: function(i) {
  var accordions = this.state.accordions;

  accordions = accordions.map(function(accordion) {
    if (!accordion.props.open && accordion.props.index === i) {
      accordion.props.open = true;
    } else {
      accordion.props.open = false;
    }
    return accordion;
  });

  this.setState({
    accordions: accordions
  });
},
componentWillReceiveProps: function(nextProps) {
  var accordions = this.state.accordions.map(function(accordion, i) { …
Run Code Online (Sandbox Code Playgroud)

javascript node.js reactjs

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

Zend Db(标准或表格网关)与Zend 2中的Doctrine - 优点/缺点

Zend DB(标准方式或表格网关)与Zend 2中的Doctrine 2.有些人可能会说它是苹果与橙色的比较,但我会说因为它们是替代品(我们在两者之间使用)因此可以进行比较(因为要求并不总是水晶明确).

当我启动Zend 2,因为文档,书籍,教程都是基于Zend DB或Table Gateway,我使用它但是我不满意我们必须处理2,3或更多表连接(多个表网关适配器)的方式我转向Doctrine ORM(也读了很多说"教条对大项目有益").我已经在symfony项目中使用了doctrine,所以并不困难,但我也不喜欢实体中的学说,比如实体之间的复杂连接(额外的工作),特别是与Zend DB相比,缓慢和额外的内存.

现在我真的很困惑,我该怎么办?那么你们有什么建议呢?

从我的分析:

表网关

优点

  • 轻量级(保持简单)
  • 原生于Zend(现在更好地支持以及将来更新)
  • 更多文档书籍
  • 更好的社区或用户支持(正如许多人正在努力的那样)
  • 关闭数据库表(我很擅长SQL.感觉很好)
  • 更灵活
  • 更容易使用其他学说本机功能,如ACL

缺点:

  • 表连接(更复杂)
  • 在某些情况下的原始
  • 处理多个表网关实例很困难.

教义

优点

  • 更多类 - 松散耦合 - 更好的控制
  • 带来使用ORM的所有优势
  • 已有很多关于学说本身(教程 - 文档)的工作,大部分时间都在工作
  • 减少对数据库的依赖
  • 缓存(但也可以使用Zend DB Table Gateway)

缺点:

  • 对于中型项目,内存更多,速度更慢(与Zend DB Table Gateway相比)
  • 增加复杂性(额外文件+配置+自己的约定)
  • 对于中型项目来说有时候会有些过分
  • 在实体或复杂连接之间的多对多关系中进行更多工作
  • 额外的工作YAML-Schema
  • Zend + Doctrine上的教程 - 书籍 - 用户支持较少

还有其他人?( 对彼此而言)

那么,鉴于这些,你建议哪一个?使用我可以扩展的通用CMS.

或者为什么Zend DB不能/不应该用于大型项目?

我在这里找到了一些讨论但不是根据其优缺点分析.

php zend-framework doctrine-orm zend-framework2

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

如果没有init的延迟,Reflux触发器将无法工作

我使用了Reflux,通常我在进行ajax调用后触发,并且运行良好.出于测试目的,我不需要ajax调用,并且我注意到除非我给出最小5ms的超时,否则触发器将不起作用.这是工作而不是工作的例子.

不工作的例子:

window.threadStore = Reflux.createStore
  init: ->
    @state = @getInitialState()
    @fetchThreads()
  getInitialState: ->
    loaded: false
    threads: []
  fetchThreads: ->
    # ajax call for not Testing, and just trigger for Testing
    @state.threads = FakeData.threads(20)
    @state.loaded = true
    @trigger(@state) # This will NOT work!
Run Code Online (Sandbox Code Playgroud)

window.threadStore = Reflux.createStore
  init: ->
    @state = @getInitialState()
    @fetchThreads()
  getInitialState: ->
    loaded: false
    threads: []
  fetchThreads: ->
    # ajax call for not Testing, and just trigger for Testing
    @state.threads = FakeData.threads(20)
    @state.loaded = true
    setTimeout( =>
      @trigger(@state) # …
Run Code Online (Sandbox Code Playgroud)

flux reactjs reactjs-flux refluxjs

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

RSA签名具有公共密钥作为文本未在java中验证

此问题是在继续过去的问题中生成的.如何RSA验证在php中生成的java中的签名.该代码适用于简单文本.但是现在我要求签署和验证格式中还有公钥(除验证密钥之外)的文本.

text1:text2:exported-public-key
Run Code Online (Sandbox Code Playgroud)

示例:

53965C38-E950-231A-8417-074BD95744A4:22-434-565-54544:MIIBCgKCAQEAxWg6ErfkN3xu8rk9WsdzjL5GpjAucMmOAQNeZcgMBxN+VmU43EnvsDLSxUZD1e/cvfP2t2/dzhtV6N2IvT7hveuo/zm3+bUK6AnAfo6pM1Ho0z4WetoYOrHdOVNMMPaytXiVkNlXyeWRF6rl9JOe94mMYWRJzygntiD44+MXsB6agsvQmB1l8thg/8+QHNOBBU1yC4pLQwwO2cb1+oIl0svESkGpzHk8xJUl5jL6dDnhqp8+01KE7AGHwvufrsw9TfVSAPH73lwo3mBMVXE4sfXBzC0/YwZ/8pz13ToYiN88DoqzcfD3+dtrjmpoMpymAA5FBc5c6xhPRcrn24KaiwIDAQAB 
Run Code Online (Sandbox Code Playgroud)

PHP代码:

$rsa = new Crypt_RSA();
$keysize=2048;
 $pubformat = "CRYPT_RSA_PUBLIC_FORMAT_PKCS1";
 $privformat = "CRYPT_RSA_PRIVATE_FORMAT_PKCS8";
$rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS8);
$rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1);
$d = $rsa->createKey($keysize);
 $Kp = $d['publickey'];
 $Ks = $d['privatekey'];

$rsa = new Crypt_RSA();
$rsa->setPrivateKeyFormat(CRYPT_RSA_PRIVATE_FORMAT_PKCS8);
$rsa->setPublicKeyFormat(CRYPT_RSA_PUBLIC_FORMAT_PKCS1);
$d = $rsa->createKey($keysize);
$Kver = $d['publickey'];
$KSign = $d['privatekey'];

$plainText = "53965C38-E950-231A-8417-074BD95744A4:22-434-565-54544:".$Kp;

// Signing
$hash = new Crypt_Hash('sha256');
$rsa = new Crypt_RSA();    
$rsa->loadKey($KSign);
$rsa->setSignatureMode(CRYPT_RSA_ENCRYPTION_PKCS1);
$rsa->setHash('sha256');

$signature = $rsa->sign($plainText);
$signedHS = base64_encode($signature);

// Verification

$signature = base64_decode($signedHS);
$rsa->loadKey($Kver);
$status = $rsa->verify($plainText, $signature);

var_dump($status);        
Run Code Online (Sandbox Code Playgroud)

JAVA代码

import static …
Run Code Online (Sandbox Code Playgroud)

php java cryptography bouncycastle digital-signature

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

在ZF2中,插入后获取最后一个插入ID而不使用TableGateway

执行insert语句后我需要最后一个插入ID.现在我没有使用TableGateway,因此我无法使用$this->lastInsertValue.如果我需要通过Sql Object而不是Table Gateway Object使用Insert语句,还有哪些其他选项可用.

$objInsert = new Insert('name_master');
$objInsert->values(array( 'username' => $name,
                'price' => 0,
                'is_approval_needed' => 'n'
             ));

$sql = new Sql($this->adapter);

$result = $sql->prepareStatementForSqlObject($objInsert)->execute()->getAffectedRows();
Run Code Online (Sandbox Code Playgroud)

因为我需要使用前一个插入的最后一个插入ID在不同的表中执行多个插入语句,现在我想在我的模型的单个方法中执行它.

zend-framework2

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

通常的做法是从动作创建者手中获取商店数据吗?

在flux架构中,通常的做法是从动作创建者的商店中获取数据?如果没有,这是否意味着通过组件参数传递网络呼叫所需的所有数据会更好?

我有一个具有3级深度组件的应用程序,只是想知道将数据从1级复制到3级是多么现实.

任何解释将不胜感激.

javascript reactjs reactjs-flux

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

ReactJs:使用Portal"模式"包装语义UI模式

我正在尝试使用此处描述的门户方法来包装Semantic UI Modal组件

这是我对它的看法http://jsfiddle.net/mike_123/2wvfjpy9/ 虽然我遇到了问题,但是当获得一个DOM引用并将新标记渲染到其中时,似乎仍然保留了旧的引用.

render: function() {
    return <div className="ui modal"/>; <-- the idea at first was to only return <div/>
},
Run Code Online (Sandbox Code Playgroud)

...

        React.render(<div > <----------- originally this element had className="ui modal", but this.node doesn't seem to overtake the original node reference
                    <i className="close icon"></i>
                    <div className="header">test</div>
                    <div className="content">
                        {props.children}
                    </div>
                </div>, <----------- 
                this.node);
Run Code Online (Sandbox Code Playgroud)

任何指针如何修复此测试用例http://jsfiddle.net/mike_123/2wvfjpy9/

portal modal-dialog reactjs

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

html select即使设置为set也不显示为选中

我有一个国家/地区下拉列表,并将所选属性设置为美国。我可以清楚地看到select =“ selected”进入在萤火虫中具有US值的select OPTION中。但是,无论是Firefox还是Chrome,都不会显示US为选中状态。我有以下用于填充和选择国家/地区的代码。

var countryData = getCountryData();
var html = '<option value="">Select Country</option>'; 
$.each(countryData, function(key,value) {
    if(defaultValue == value.id)
    {
        html = html + '<option value="'+value.id+'" selected="selected">'+value.name+'</option>';
    }
    else
    {
        html = html + '<option value="'+value.id+'">'+value.name+'</option>';
    }
});
countryField.html(html);
Run Code Online (Sandbox Code Playgroud)

如果确实由于某种原因浏览器没有显示所选内容,即使我们设置了所选属性也是如此。

更新:好的,正如我所期望的,它必须与其他代码冲突。确实是这样。我正在使用bootstrapValidator和执行此行为的特殊调用“ resetForm”。然而,我不明白的一件事,为什么仍然在Firebug中的html select显示出selected属性?但是最后我将这段代码放在了resetForm调用之后。感谢所有的建议和帮助。

html html-select selectedvalue

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

Android 保存用户会话

我是 android 新手我试图保存登录会话并在每次向服务器发送请求时发送它,我的网络服务是 PHP(Zend 框架 2)。

此代码用于识别用户:

$auth = Zend_Auth::getInstance();
$IdentityObj = $auth->getIdentity();
Run Code Online (Sandbox Code Playgroud)

可以像使用 Web 浏览器一样保存会话并发送它,而无需对我的 Web 服务进行任何更改。

session android zend-framework login zend-auth

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

在分页的scrollview中反映Native灵活视图大小

我正在尝试在React Native中使用ScrollView(启用分页)来浏览一系列图像.任何人都知道如何使图像视图填充滚动视图的每个页面?到目前为止,我只是很难为图像样式编写宽度和高度值.

这大致是我正在做的事情:

render: function() {
  return (
    var images = [{ url: 'http://url/to/image.jpg' }, { url: 'http://url/to/another-image.jpg'}];
    <ScrollView horizontal={true} pagingEnabled={true} style={styles.myScrollViewStyle}>
      {images.map(image => {
        return (
          <Image source={{uri: image.url}} style={styles.myImageStyle} />
        );
      })}
    </ScrollView>
  );
}
Run Code Online (Sandbox Code Playgroud)

图像显示的唯一方法是如果我在样式中硬编码宽度/高度数.我一直无法让图像只是弯曲以填充整页.

ScrollView风格:

scrollView: {
  flex: 1,
  backgroundColor: '#000000',
}
Run Code Online (Sandbox Code Playgroud)

图像样式:

image: {
  width:375,
  height:667,
  flex: 1,
  backgroundColor: 'rgba(0,0,0,0)',
}
Run Code Online (Sandbox Code Playgroud)

javascript node.js ios reactjs react-native

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

谷歌地图方向与多个方向与颜色

我需要在地图方向上填充以下数据

dataset 1
    [
        [lat, lon],
        [lat, lon],
        [lat, lon],
    ],
dataset 2
    [
        [lat, lon],
        [lat, lon],
        [lat, lon],
    ],   
So On ... 
Run Code Online (Sandbox Code Playgroud)

所有数据集都应具有具有唯一颜色的路线,并且任何数据集都可以超过 8 个航点限制。我能够通过遵循https://lemonharpy.wordpress.com/2011/12/15/working-around-8-waypoint-limit-in-google-maps-directions-api/等在线教程来修复 8 个路点限制在 Google 地图 v3 中绘制超过 8 个航点

但我发现没有办法为每个数据集获取不同颜色的路线。

这是我的代码

<style>
#map {
       height: 1080px;
       width: 100%;
       border: 1px solid #000;  
     }

</style>

<div id="map"></div>
<script>
function initMap() {
    //console.log("sdsfsd");
    map = new google.maps.Map(document.getElementById('map'), {
      zoom: 14,
      center: {lat: 28.6247, lng: 77.3731},
      disableDefaultUI:true,
      //28.6247375!4d77.3731819
    });

    var directionsService = new …
Run Code Online (Sandbox Code Playgroud)

javascript google-maps google-maps-api-3 map-directions

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