小编MyN*_*ame的帖子

当您尝试刷新其他页面时,React js 重定向到主页

当用户刷新其他页面时,我需要重定向到主页。这是我尝试为页面刷新添加事件侦听器。但它不起作用,我Router.js?cf42:125 Uncaught RangeError: Maximum call stack size exceeded在浏览器中。你能告诉我如何处理这个错误吗?

import {browserHistory} from 'react-router';

class MyComponent extends React.Component {
    constructor(props, context) {
        super(props, context);
        this.onUnload = this.onUnload.bind(this);
    }

    componentDidMount() {
       window.addEventListener('beforeunload', this.onUnload);
    }

    componentWillUnmount() {
        window.removeEventListener('beforeunload', this.onUnload);
    }

    onUnload() {
        browserHistory.push('/');
    }

    render() {
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

UPD:我已经修复了 RangeError。现在MyComponent的页面被重定向到主页,但之后它再次打开。我认为这是因为重定向不会停止页面刷新。

javascript reactjs react-router

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

使用try/catch时单元测试失败

我需要测试确切的Argument Exception是谨慎的.是否真的可以理解方法中的异常是谨慎的吗?

    public JsonResult Create(TeamViewModel teamViewModel)
    {
        JsonResult result = null;
            try
            {
                // here exception throws
                var domainTeam = teamViewModel.ToDomain();
                  ...
            }
            catch (ArgumentException ex)
            {
                this.ModelState.AddModelError(string.Empty, ex.Message);
                result = this.Json(this.ModelState);
            }           

        return result;
    }
Run Code Online (Sandbox Code Playgroud)

我的单元测试此方法:

 public void Create_InvalidTeamAchievements_ArgumentExceptionThrown()
 {
    Exception exception = null;
    string invalidAchievements = CreateInvalidTeamAchievements();

    // Arrange
    var viewModel = new TeamMvcViewModelBuilder().WithAchievements(invalidAchievements).Build();
    var sut = _kernel.Get<TeamsController>();

    // Act
    try
    {
        sut.Create(viewModel);
    }
    catch (ArgumentException ex)
    {
        exception = ex;
    }

    // Assert
    VerifyExceptionThrown(exception, string.Format(Resources.ValidationTeamAchievements, 
                Constants.Team.MAX_ACHIEVEMENTS_LENGTH));
}
Run Code Online (Sandbox Code Playgroud)

c# unit-testing

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

在C中读取二进制文件

我有文件test.bin,其内容为:33 0F 13 05 54 65 73 74 20 13 06 55 73 65 72 20 31当我读到这个文件时,我得到了这样的结果:3333203046203133203035203534203635.我无法理解我做错了什么办法.

void ReadBinFile()
{
    int i;
    FILE *ptr;
    unsigned char buffer2[17];
    ptr = fopen("test.bin","r");
    fread(buffer2,sizeof(buffer2),1,ptr);

    for(i = 0; i<17; i++)
        printf("%x", buffer2[i]);
}
Run Code Online (Sandbox Code Playgroud)

c binaryfiles

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

标签 统计

binaryfiles ×1

c ×1

c# ×1

javascript ×1

react-router ×1

reactjs ×1

unit-testing ×1