小编Raf*_*ora的帖子

具有箭头函数es6的setTimeout ReactJS

我想知道如何setTimeout()在ReactJS 上使用,因为我这样做:

 timerid = setTimeout( () => this.reqMaq( obj['fkmaqid'] ), 2000 )
Run Code Online (Sandbox Code Playgroud)

它调用两次函数this.reqMaq().

如何阻止第一次通话?并且只是在时间之后保持通话?

这是组件:

reqMaq (maqid) {
    return fetch(`/scamp/index.php/batchprodpry/${maqid}`, {credentials: 'same-origin'})
      .then(req => {
        if (req.status >= 400) {
          throw new Error("Bad response from server")
        }
        return req.json()
      })
      .then(json => this.processMaqReq(json))
      .catch(function(error) {
        console.log('request failed', error)
      })
  }    

  handleChangeMaq (event) {
    event.preventDefault()
    if (event.target.value.length > 0) {
      let obj = this.state.obj
      obj['fkmaqid'] = VMasker.toPattern(event.target.value, "99-99-99-99")
      // if (timerid) {
      //   clearTimeout(timerid)
      // …
Run Code Online (Sandbox Code Playgroud)

javascript settimeout reactjs

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

使用 Doctrine\DBAL\Exception 捕获数据库错误

我想从insert语句或任何其他错误中捕获任何错误(即:外键错误)。我怎样才能做到这一点use Doctrine\DBAL\Exception

当我执行以下操作时,我有这个insert

            $db->beginTransaction();
            try {
              $db->insert('bbc5.produccionpry',$datos);
              $datos['propryid'] = $db->lastInsertId();
              $db->commit();
              // $db = null;
              $resp[] = $datos;
            } catch (Exception $e) {
              $error = array_merge($error, array('error' => $e->errorInfo()));
              $db->rollback();
              throw $e;
            }
Run Code Online (Sandbox Code Playgroud)

但是,这并不能阻止具体return的网站告诉错误,所以,我不希望显示该网站,我想在 anarray()中捕获错误以便通过echo json_encode($error)

我没有将控制器用于页面,而是使用它来管理来自我的 JavaScript 应用程序的 RESTful 调用,代码如下:

return fetch(`/scamp/index.php/batchprodpry/${maq}`, { 
  method: 'POST', 
  credentials: 'same-origin', 
  headers: { 
    'Accept': 'application/json', 
    'Content-Type': 'application/json' 
  }, 
  body: JSON.stringify(this.state.a) 
})
Run Code Online (Sandbox Code Playgroud)

我正在使用 ReactJS

谢谢

database exception symfony doctrine-orm concrete5-5.7

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

没有这个的获取承诺中的调用函数

我想知道,我该怎么做才能在获取中以诺言方式调用函数?

请注意这一行: .then(json => this.processReq(json))

我不得不用this.,因为如果没有它说,processRequndefined。应该不是这样的:.then(json => processReq(json))因为是ES6?

这是我的代码(我正在使用Babel ES6和React):

import React, { Component, PropTypes } from 'react'
import fetch from 'isomorphic-fetch'

export default class Batchprodpry extends Component {
  constructor(props) {
    super(props) {
  .
  .
  .
  processReq(json) {
    Object.keys(json).forEach(item => {
      if (item === 'error') {
        Object.keys(json[item]).forEach(propry => {
          alert('Conflicto! '+'\n'+
            'Id: ' + JSON.stringify(json[item][propry]['propryid'])+'\n'+
            'Id Operador: ' + JSON.stringify(json[item][propry]['fkempid'])+'\n'+
            'Hora inicio: ' + JSON.stringify(json[item][propry]['propryhoraini'])+'\n'+
            'Hora fin: ' + JSON.stringify(json[item][propry]['propryhorafin']))          
        })
      } …
Run Code Online (Sandbox Code Playgroud)

ecmascript-6 reactjs fetch-api es6-class

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