小编Han*_*son的帖子

React.js:你用一个不可调用的回调调用`setState`

这是我的一段代码,它可以正常工作(添加记录),但在添加后抛出错误:

未捕获的错误:违反不变:enqueueCallback(...):你叫 setProps,replaceProps,setState,replaceState,或 forceUpdate有回调是不可调用的.

handleSubmit: function(e) {
    e.preventDefault();
    return $.post('', {page: this.state},
      function(data) {
        this.props.handleNewPage(data);
        return this.setState(this.getInitialState(), 'JSON');
      }.bind(this)
    );
  }
Run Code Online (Sandbox Code Playgroud)

目前没有路线.有人可以帮我解决这个问题吗?

javascript reactjs

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

在Visual Studio 2015中的符号扩展操作数上使用的按位或运算符

我刚刚尝试安装Visual Studio 2015,在尝试编译旧项目时,我收到了警告

CS0675按位或运算符用于符号扩展操作数; 首先考虑转换为较小的无符号类型

对于在Visual Studio 2013中编译时没有给出相同警告的代码片段.我发现重现所需的只是这个非常简单的代码:

short a = 0;
int b = 0;

a |= (short)b;
Run Code Online (Sandbox Code Playgroud)

现在,我已经阅读了这个问题,我已经阅读了Eric Lippert关于这个问题的博文,我很快就读到了符号扩展,但我的理解是当你从一个由较小数字组成的有符号数字类型中进行转换时会发生符号扩展的位以一个与位,更大数量的诸如shortint例如.

但是因为我从一个int到另一个short,所以如果我没有弄错的话就不会发生任何符号扩展.事实上,这不会在早期版本的Visual Studio中发出警告,这让我相信这必定是Visual Studio 2015编译器(Roslyn)中的一个错误.我是否误解了符号扩展和/或编译器如何在这里工作,或者这很可能是编译器错误?

更新

Jon Skeet指出实际上确实发生了一个符号扩展,因为|没有定义运算符short,因此int在结果short再次转换之前会有一个隐式转换.但是,编译器不应该发出此警告,因为强制转换是无害的.在接受的答案中指出,Roslyn编译器中存在一个错误.

c# bit-manipulation roslyn visual-studio-2015

13
推荐指数
2
解决办法
1377
查看次数

如何使用OpenXML包AutoFit excel列

此代码生成Excel电子表格使用openxml包.请任何人告诉如何自动调整其列宽.

OpenXmlPackage.SpreadsheetDocument spreadsheetDocument = OpenXmlPackage.SpreadsheetDocument.Create(downloadFilePath, OpenXml.SpreadsheetDocumentType.Workbook);
// Add a WorkbookPart to the document.
OpenXmlPackage.WorkbookPart workbookpart = spreadsheetDocument.AddWorkbookPart();
// Add a WorksheetPart to the WorkbookPart.
workbookpart.Workbook = new OpenXmlSpreadsheet.Workbook();
int numDates = datesObject.Length;

// Add Sheets to the Workbook.
OpenXmlSpreadsheet.Sheets sheets = new OpenXmlSpreadsheet.Sheets();
OpenXml.UInt32Value sheetId = 1;

OpenXmlPackage.WorksheetPart firstWorksheetPart = workbookpart.AddNewPart<OpenXmlPackage.WorksheetPart>();
firstWorksheetPart.Worksheet = new OpenXmlSpreadsheet.Worksheet(new OpenXmlSpreadsheet.SheetData());
// Append a new worksheet and associate it with the workbook.
OpenXmlSpreadsheet.Sheet firstSheet = new OpenXmlSpreadsheet.Sheet() { Id = spreadsheetDocument.WorkbookPart.GetIdOfPart(firstWorksheetPart), SheetId = sheetId, Name …
Run Code Online (Sandbox Code Playgroud)

c# asp.net excel openxml visual-studio-2012

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

ListView删除dataSource更新上的错误行

当我使用新的部分和行更新状态时,我有一个React Native ListView似乎正在删除UI中的错误行 - 我删除的行保留,但是下面的那个,有时甚至是2,直到我重新加载应用程序.

我究竟做错了什么?

constructor(props) {
  super(props)

  this.state = {
    dataState: DataState.STATE_NOT_LOADED,
    dataSource: new ListView.DataSource({
      rowHasChanged: (r1, r2) => r1.identifier !== r2.identifier,
      sectionHeaderHasChanged: (s1, s2) => s1 !== s2
    })
  };
}

componentDidMount() {
  this.loadData();
}

loadData() {
  this.setState({
    dataState: DataState.STATE_LOADING
  });

  User.getDocs()
    .bind(this)
    .then(results => {
      var docs = _.groupBy(results, function (d) {
        return d.createdAt.format('MMMM D');
      });

      this.setState({
        dataState: DataState.STATE_LOADED,
        dataSource: this.state.dataSource.cloneWithRowsAndSections(docs)
      });
    })
    .catch(error => {
      console.log(error);

      this.setState({
        dataState: DataState.STATE_ERROR
      });
    });
}

onTrackPressed(doc) {
  User.untrackDoc(doc) …
Run Code Online (Sandbox Code Playgroud)

reactjs react-native

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

在React中使用自定义Angular指令

我试图用React渲染来实现替换Angular ng-repeat的"快速重复"模式.我可以渲染一个基本表,但该表需要支持自定义Angular指令.我可以在React(作为属性)中获取自定义指令,但它们不起作用.基于谷歌先生,这应该是可能的,但在我看来,或许我需要在React渲染的HTML上进行$ compile,其中包含我的自定义指令......或者不是.

这是我的精简测试代码.'react-test'指令似乎正确地呈现了ReactClass组件,其中包含一个'ng-monkey'属性,该属性本身就是一个Angular自定义指令.猴子似乎不起作用.有什么建议?

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Angular React Test</title>
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta content="width=device-width, initial-scale=1.0" name="viewport" />
</head>
<body ng-app="AngularReactTest" ng-controller="TestController">

    <react-test monkey></react-test>

    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.3/angular.min.js">    </script>
    <script src="https://fb.me/react-0.13.3.js"></script>

    <script>
        var ReactClass = React.createClass({
            displayName: 'ReactClass',
            render: function () {
                return (
                    React.DOM.div({ 'data-ng-monkey': '' }, null)
                )
            }
        });

        angular
            .module('AngularReactTest', [])
            .controller('TestController', [function () {
            }])
            .directive('reactTest', function () {
                return {
                    restrict: 'E',                   
                    link: function (scope, el, attrs) {
                        var test = React.createElement(ReactClass, …
Run Code Online (Sandbox Code Playgroud)

angularjs reactjs angular-directive

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

定位react-bootstrap弹出窗口

我有几个引导行。当用户单击任何行时,该行的中间应出现一个弹出窗口并显示一些信息。然而,目前它在行尾之后弹出到最右侧。

这是我的 JSBin 链接,显示了代码:https://jsbin.com/rogeyufuku/1/edit ?css,js,output

我尝试通过将positionLeft设置为负值来重新定位它,如下所示:

<ReactBootstrap.Popover className="my-popover"
                    positionLeft={-300}
                    positionTop={20}
  >
Run Code Online (Sandbox Code Playgroud)

但这没有用。

我还尝试使用简单的旧 CSS 规则来操作它,如下所示:

.my-popover {
  position: relative;
  left: -200px; 
}
Run Code Online (Sandbox Code Playgroud)

但这也不起作用。

有什么想法可以按照我的需要渲染弹出窗口覆盖吗?

(包括此处的所有代码供参考,但 JSBin 链接有效)

编辑:这是它现在的样子:https://i.stack.imgur.com/4XeBU.png 这是我想要的样子:https://i.stack.imgur.com/VZaHX.jpg

reactjs react-bootstrap

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

反应es6 es2015模态弹出窗口

我对React和ES6很新.我正在使用React构建一个小应用程序,我遵循ES6标准.现在我需要在按钮点击上打开一个模态窗口.

我试过react-bootstrap模态和天窗.但没有找到太多运气.

任何人都可以建议打开/关闭模态以及回调的最佳方式.

提前致谢.

modal-dialog ecmascript-6 reactjs

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

如何将setInterval()的ID传递给匿名函数

我想把处理程序传递setInterval()给内部函数.

例如:

var id = setInterval(myfunction, "100000");
Run Code Online (Sandbox Code Playgroud)

我希望id转到myfunction

我试过了

setInterval(myfunciton(e), "10000");
Run Code Online (Sandbox Code Playgroud)

但它没有通过变量.

有任何想法吗?

javascript anonymous function setinterval

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

jQuery如何检查数组中的所有元素是否都有特定的类

我正在尝试检查插入到数组中的所有元素是否有类.到目前为止我对数组的代码是这样的:

var ids = ['#biography', '#videogallery', '#pubblications', '#contacts', '#resume'];
var currentElem = "";

function test(){
    $(ids.join()).each(function() {
        var currentElem = $(this);
    })
};
Run Code Online (Sandbox Code Playgroud)

问题是现在我有点卡住了.我的意思是,我应该写什么以便if语句检查数组中具有id的所有元素是否都具有"test"类?

就像是:

  • 如果#biography为类"测试"
  • 如果#videogallery为类"test"
  • 等等
  • 如果所有这些都作为"测试"类,则运行一个函数
  • 如果连一个都没有,那就跑吧.

希望它不会太混乱.在此先感谢您的帮助!

arrays jquery

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

如何访问锚标记的HTML

<td class="ms-gb">
  <a>
    <span class="ms-commentexpand-iconouter">
      <img class="ms-commentexpand-icon">
    </span> 
    Mutual Funds 
    <img class="right-arrow">
  </a> : Mutual Funds <span>(3)</span>
</td>
Run Code Online (Sandbox Code Playgroud)

如何获取锚标记的HTML?

jquery

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

如果等于助手不编译,则自定义把手

我在Handlebars中添加了一个自定义帮助器来完成一个if == "some string"类型帮助器.帮助代码是这样的:

Handlebars.registerHelper('if_eq', function(a, b, opts) {
    if(a == b) // Or === depending on your needs
        return opts.fn(this);
    else
        return opts.inverse(this);
});
Run Code Online (Sandbox Code Playgroud)

模板是这样的:

<div id="appStoreParametersModal" class="modal-dialog">
    <div class="modal-content appStoreParametersModal">
        <div class="modal-header hypersignModalHeader">
            <h3>{{appName}}</h3>
        </div>
        <div class="modal-body">
            <div id="app-params">
                {{#each appParm}}
                <form>
                    {{#if_eq uiControlType "text"}}
                    <div class="form-group">
                        <label for="{{qsName}}">{{uiName}}</label>
                        <input type="text" class="form-control" id="{{qsName}}" placeholder="{{uiName}}"/>
                    </div>
                    {{else if_eq uiControlType "dropdown"}}
                    <div class="form-group">
                        <label for="{{qsName}}">{{uiName}}</label>
                        <select class="form-control" id="{{qsName}}">
                            {{#each defaultVals}}
                                <option value="{{value}}">{{displayName}}</option>
                            {{/each}}
                        </select>
                    </div>
                    {{/if_eq}}
                </form>
                {{/each}} …
Run Code Online (Sandbox Code Playgroud)

javascript handlebars.js

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