React native react native this.setState不会重新呈现子组件

React native react native this.setState不会重新呈现子组件,react-native,React Native,我正在尝试用react native编写一个待办应用程序。我已确认保存所有待办事项的状态正在接收用户添加的待办事项。this.setState不会触发重新渲染。有人想知道为什么吗?从我读到的内容来看,setState应该会触发重新渲染 var React=require('React-native'); 变量{ 评估学, 样式表, 文本 看法 文本输入, 触控高光, 列表视图 }=反应; var AwesomeProject=React.createClass({ getInitialState

我正在尝试用react native编写一个待办应用程序。我已确认保存所有待办事项的状态正在接收用户添加的待办事项。this.setState不会触发重新渲染。有人想知道为什么吗?从我读到的内容来看,setState应该会触发重新渲染

var React=require('React-native');
变量{
评估学,
样式表,
文本
看法
文本输入,
触控高光,
列表视图
}=反应;
var AwesomeProject=React.createClass({
getInitialState:函数(){
返回{
待办事项:[“你好,世界”,“杰克”]
}
},
addToDo:函数(todo){
console.log(todo)//这是打印添加的todo项
这是我的国家({
toDos:this.state.toDos.concat([todo])
});
console.log(this.state.toDos)//这是添加了项的打印状态
},
render:function(){
返回(
);
}
});
var ToDos=React.createClass({
getInitialState:函数(){
var ds=新的ListView.DataSource({rowHasChanged:(r1,r2)=>r1!==r2});
返回{
数据源:ds.cloneWithRows(this.props.toDos)
};
},
render:function(){
返回(
{rowData}}/>
)
}
});
var输入=React.createClass({
getInitialState:函数(){
返回{
输入文本:“”
}
},
更新输入:函数(e){
这是我的国家({
inputxt:e.target.value
});
},
handleAddNew:函数(){
this.props.addNew(this.state.inputxt);
这是我的国家({
输入文本:“”
});
},
render:function(){
返回(
输入待办事项:
this.setState({inputxt:text})}/>
添加待办事项
);
}
});
var styles=StyleSheet.create({
容器:{
弹性:1,
为内容辩护:“中心”,
对齐项目:“居中”,
背景颜色:“#F5FCFF”,
},
欢迎:{
尺寸:20,
textAlign:'中心',
差额:10,
},
说明:{
textAlign:'中心',
颜色:'#333333',
marginBottom:5,
},
});
AppRegistry.registerComponent('AwesomeProject',()=>AwesomeProject);

在此方面的任何帮助都将不胜感激

看起来您的
TODO
组件需要
组件WillReceiveProps
方法:

看起来您的
TODO
组件需要
组件WillReceiveProps
方法:

试试看

组件将接收props(nextrops){
this.setState({dataSource:dataSource.cloneWithRows(nextrops.toDos)
}
试试看

组件将接收props(nextrops){
this.setState({dataSource:dataSource.cloneWithRows(nextrops.toDos)
}