小编Jus*_*els的帖子

React ReRender问题

我正在创建一个Web应用程序,该应用程序将允许用户在屏幕上拖动和拖动多个片段,每个片段都包含单独的特定数据。如果用户想在屏幕上添加更多作品,他们只需单击一个按钮,就会出现另一作品。我使用了React DND(Drag and Drap)库来保持我的组件之间的分离,到目前为止,一切都还不错。问题在于在屏幕上添加更多作品的动态功能。当前(在下面的子代码中),我正在获取旧的状态对象,执行浅表复制,并将新创建的对象与先前存在的状态对象合并,并在完成后更新状态。但是,每次执行此操作时,一切正常(在屏幕上生成新的片段),直到我去移动一个新片段,并出现以下错误:

在现有状态转换期间(例如在内render)无法更新。渲染方法应该纯粹是props和state的函数。

我该如何摆脱这个错误,并更新状态对象。

注意:按钮(在下面的屏幕快照中)显示State对象中对象数量的当前计数。所以下面我在状态中添加了7个对象

应用截图: 在此处输入图片说明 上级:

  import React, { Component, PropTypes } from 'react';
    import Header from '../../components/Header/header';
    import Footer from '../../components/Footer/footer';
    import Student from '../../components/box1/box1';
    import Box from '../../components/box2/box2';
    import { DragDropContext } from 'react-dnd';
    import HTML5Backend from 'react-dnd-html5-backend';
    require('./home.css');


var Home = React.createClass({
  getDefaultProps: function(){

    return{ count: 3 }  
  },

  getInitialState: function(){
     return{ count: this.props.count }
  },

  add: function(){
     this.setState({ count: this.state.count + 1 });
  },

  render() {

    return (
        <div id="main">
              <Box …
Run Code Online (Sandbox Code Playgroud)

javascript reactive-programming reactjs react-dnd

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

在 DotNetNuke 中获取当前用户

一旦当前登录的用户到达我们的 DotNetNuke 页面上托管的我的应用程序,我就会尝试获取他们。该应用程序是用 React.JS 构建的,我在 HTML 模块内渲染它。当用户到达应用程序时,我将执行 ComponentDidMount 方法调用,并向我的 .ascx 文件发起 AJAX 请求以获取当前用户。(ComponentDidMount 仅在应用程序加载时自动调用一次 - 对于所有阅读本文的 .NET 用户)。进入 ASCX 文件后,我将执行下面的代码,但只获得“user”的输出。我是否应该调用一个类来在另一个文件中使用此令牌?我可以在下面的代码中做什么来让当前用户登录到该站点(遗憾的是,DNN 不使用会话变量,仅使用令牌)。

.ascx 代码:

<%   
    Response.Write("user " & [User:UserName])    
%>
Run Code Online (Sandbox Code Playgroud)

.net dotnetnuke dotnetnuke-module reactjs

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

获取 API 延迟

我正在尝试使用请求的 fetch API 在我的服务器上获取数据,但该请求需要永远处理(它最终会处理)。我使用 React 作为我的视图,Express 为我的页面提供服务。我在下面列出了我的 Express 和 JSX 代码。是否了解为什么会发生这种情况(“已安装”消息按预期立即记录,但 fetch API 在延迟后记录)?

表达:

app.use('/test',function(){
          console.log('connected');
  })
Run Code Online (Sandbox Code Playgroud)

反应.JS:

componentDidMount(){
      console.log('mounted');
      fetch('./test').then(function(response){
          console.log(response);
      }).catch(function(error){
          console.log(error);
      })  
  }
Run Code Online (Sandbox Code Playgroud)

javascript fetch express reactjs

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