我正在关注reactjs教程,并且在将值从一个组件的状态传递到另一个组件时,我一直遇到问题.当执行CommentList组件中的map函数时,抛出错误'无法读取属性'map'of undefined'.从CommentBox传递到CommentList时会导致prop变为undefined的原因是什么?
var CommentList = React.createClass({
render: function() {
var commentNodes = this.props.data.map(function (comment){
return (
<div>
<h1>{comment.author} </h1>
</div>
);
});
return (
<div className="commentList">
{commentNodes}
</div>
);
}
});
var CommentBox = React.createClass({
getInitialState: function(){
return {data: []};
},
getComments: function(){
$.ajax({
url: this.props.url,
dataType: 'json',
success: function(data){
this.setState({data: data});
}.bind(this),
error: function(xhr, status, err){
console.error(url, status, err.toString());
}.bind(this)
});
},
componentWillMount: function(){
this.getComments()
},
render: function(){
return (
<div className="commentBox">
{/*this.state.data.comments*/}
{<CommentList data={this.state.data.comments}/>}
</div>
);
}
}); …
Run Code Online (Sandbox Code Playgroud) 我有一个委托参数的以下函数,该参数接受一个接口的类型并返回另一个接口的任务.
public void Bar(Func<IMessage, Task<IResult>> func)
{
throw new NotImplementedException();
}
Run Code Online (Sandbox Code Playgroud)
我还有一个带参数的函数作为实例,IMessage
并返回一个Task.Message
和Result
是的实现IMessage
和IResult
分别.
private Task<Result> DoSomething(Message m) { return new Task<Result>(() => new Result()); }
Run Code Online (Sandbox Code Playgroud)
当我将DoSomething传递到Bar时,我收到错误.
Bar(m => DoSomething((Message)m));
// Cannot convert type 'Task<Result>' to 'Task<IResult>'
Run Code Online (Sandbox Code Playgroud)
为什么不会Result
隐式转换成IResult
?
我认为这是协方差的一个问题.但是,在这种情况下,Result
工具IResult
.我还试图通过创建一个接口并标记TResult
为协变来解决协方差问题.
public interface IFoo<TMessage, out TResult>
{
void Bar(Func<TMessage, Task<TResult>> func);
}
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
方差无效:类型参数'TResult'必须是无效的
IFoo<TMessage, TResult>.Bar(Func<TMessage, Task<TResult>>)
.'TResult'是协变的.
现在我被卡住了.我知道我有协方差的问题,但我不知道如何解决它.有任何想法吗?
编辑:此问题特定于任务.我async await
在我的应用程序中实现了这个问题.我遇到了这个通用实现,并添加了一个Task …
尝试使用ReactJS和节点进行服务器端渲染时,我一直收到以下错误.
React attempted to use reuse markup in a container but the checksum was invalid.
Run Code Online (Sandbox Code Playgroud)
我已经看到一个答案,在服务器和客户端传递相同的道具解决了这个问题.在我的例子中,我没有任何道具,所以我不确定答案是否适用于我的问题.
您可以在我的github帐户上查看我的完整示例.
我在下面列出了重要的代码.非常感谢任何见解.
JSX
/** @jsx React.DOM */
var React = require('react');
var index = React.createClass({
render: function() {
return (
<html>
<head>
<script src="bundle.js"></script>
</head>
<body>
<div>
hello
</div>
</body>
</html>
);
}
});
if (typeof window !== "undefined") {
React.renderComponent(<index/>, document.documentElement);
} else {
module.exports = index;
}
Run Code Online (Sandbox Code Playgroud)
服务器
require('node-jsx').install();
var express = require('express'),
app = express(),
React = …
Run Code Online (Sandbox Code Playgroud) 我们正在使用无头Chrome进行应用程序测试.我们有一个拒绝在无头模式下重定向的页面,但在不运行无头时重定向完全正常.响应头包含要重定向到的URL,并返回302状态代码.
在无头模式下运行时,Chrome会出现什么样的行为?是否有任何日志记录可以帮助我确定重定向无法按预期工作的原因?
编辑:找到更多信息.看起来我无法重定向到证书质量不佳的网站.ERR_CERT_AUTHORITY_INVALID
在无头模式下运行Chrome时如何处理?
我试图在我的WF4项目中遵循这篇文章中的解决方案:将枚举属性数据绑定到WPF中的ComboBox
我已经实现了代码
<ObjectDataProvider MethodName="GetValues"
ObjectType="{x:Type s:Enum}"
x:Key="DayOfWeekValues">
<ObjectDataProvider.MethodParameters>
<x:Type TypeName="s:DayOfWeek" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
<ComboBox ItemsSource="{Binding Source={StaticResource DayOfWeekValues}}"/>
Run Code Online (Sandbox Code Playgroud)
我在TypeName ="s:DayOfWeek"属性上收到以下错误.
Cannot reparent the node "Type(System.DayOfWeek)" from the old parent "IList" to the new parent "ObjectDataProvider".
Run Code Online (Sandbox Code Playgroud)
有关此错误含义的任何想法?
编辑:除了上面的错误,我还在ObjectDataProvider上的MethodName ="GetValues"属性上收到以下错误.
INCORRECT_PARAMETER_TYPE
Run Code Online (Sandbox Code Playgroud)