当用户刷新其他页面时,我需要重定向到主页。这是我尝试为页面刷新添加事件侦听器。但它不起作用,我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的页面被重定向到主页,但之后它再次打开。我认为这是因为重定向不会停止页面刷新。
我需要测试确切的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) 我有文件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)