gpt4 book ai didi

javascript - react native : Send component state to other component using Tab Navigator

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:53:35 26 4
gpt4 key购买 nike

我有一个组件可以添加 todos AddTodo,它可以正常工作并使用我添加的 todos 更新状态,我有一个组件 TodoItems 可以在 <FlatList/> 中显示 todos .我正在使用 React Native Tab Navigator在组件之间切换,但我不确定如何发送状态 this.state.todosAddTodo 组件到 TodoItems 组件。

我一直在研究,但在 Tab Navigator 中找不到解决方案,但 Stack Navigator 有很多解决方案。


组件 AddTodo

export default class AddTodo extends Component {

constructor(props) {
super(props);
this.state = {
todoText: null,
todos: []
}
}

onAdd = () => {
if (this.state.todoText) {
this.state.todos.push({'todoItem': this.state.todoText});
this.setState({todos: this.state.todos});
}
}

render() {
return(
<View>
<TextInput onChangeText={(text) => {
this.setState({todoText: text});
}} />
<TouchableOpacity onPress={() => {
this.onAdd;
}}>
</View>
);
}

}

组件 TodoItems

export default class TodoItems extends Component {

constructor(props) {
super(props);
this.state = {
todosList: []
}
}

render() {
return(
<View>
<FlatList
data={this.state.todosList}
renderItem={(item, index) => {
<Text>{item.todoItem}</Text>
}}
/>
</View>
);
}

}

组件选项卡

import {TabNavigator} from 'react-navigation';
import AddTodo from "./AddTodo";
import TodoItems from "./TodoItems";

var myTabs = TabNavigator(
{
'AddTodo':{screen: AddTodo,},
'TodoItems':{screen: TodoItems, },
},
{
tabBarPosition: 'top',
swipeEnabled: false,
tabBarOptions: {
labelStyle:{
fontSize: 13,
fontWeight: 'bold',

},
indicatorStyle: {
borderBottomColor: '#003E7D',
borderBottomWidth: 2,
},
style:{
backgroundColor: '#F30076',
elevation: 0,
},
},
});


export default myTabs;

最佳答案

嗯,我想你有两个选择:

  1. 您可以使用 Redux,它允许您将状态对象全局化,以便您可以在整个应用程序中使用它们,但它可能会相当复杂 https://redux.js.org/
  2. 或者您可以从 AddTodo 中呈现 TodoItems:

    render() {
    return(
    <View>
    <TextInput onChangeText={(text) => {
    this.setState({todoText: text});
    }} />
    <TouchableOpacity onPress={() => {
    this.onAdd;
    }}>
    </View>
    <TodoItems data={this.state.todos} />
    );
    }

然后您可以从 TodoItems 中访问该数据:希望这对您有所帮助!

关于javascript - react native : Send component state to other component using Tab Navigator,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47884914/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com