gpt4 book ai didi

javascript - Redux 状态更新不会传递到我的组件无状态函数中的方法

转载 作者:行者123 更新时间:2023-11-28 05:12:58 25 4
gpt4 key购买 nike

我有一个无状态函数,它返回我的 Redux/React Native 应用程序的组件。其中有一些定义的辅助函数:

export default function TasksList (props) {
let ds = new ListView.DataSource({
rowHasChanged: (r1, r2) => r1 !== r2
});

const _onLongPress = (rowData) => {
props.changeCurrentlyEditedTask(rowData.index, rowData)

props.navigator.push({
component: EditTask,
title: props.selectedTaskText,
leftButtonTitle: 'Cancel',
rightButtonTitle: 'Save',
onLeftButtonPress: () => _cancelEditingTask(),
onRightButtonPress: () => _saveEditedTask()
})
}

const _cancelEditingTask = () => {
props.navigator.pop();
props.resetSelectedTask();
}

const _saveEditedTask = () => {
props.saveEditedTask()
props.navigator.pop();
}

const dataSource = ds.cloneWithRows(props.listOfTasks);

return (
<View style={ styles.tasksListContainer }>
<TextInput
autoCorrect={ false }
onChangeText={ (text) => props.onChangeText(text) }
onSubmitEditing={ () => props.addTask(props.text) }
returnKeyType={ 'done' }
style={ styles.tasksListTextInput }
value={ props.text } />
<ListView
automaticallyAdjustContentInsets={ false }
dataSource={ dataSource }
enableEmptySections={ true }
renderRow={ (rowData, secctionID, rowID) => {
return (
<TasksListCell
completed={ rowData.completed }
id={ rowID }
onLongPress={ (rowID) => _onLongPress(rowData) }
onPress={ (rowID) => props.changeCompletionStatus(rowData.index) }
text={ rowData.text }
completed={ rowData.completed }
formattedDate={ rowData.hasOwnProperty('formattedDate') ? rowData.formattedDate : undefined } />
)
}
}
style={ styles.tasksListView } />
</View>
);
};

每当我的 Redux 状态发生更改时,其更改都会按预期扩散到 TasksList。但是,_saveEditedTask 无法接收这些更新。

如果我尝试将 props 作为参数传递给容器中的 saveEditedTask 调度方法,它不会收到父 TasksList< 的更新状态 函数确实如此。

如何修复此代码,以便 _saveEditedTask 从其父 TasksList 函数接收最新的 props

最佳答案

目前,_saveEditedTask 函数已定义,并且实际上可以访问 TasksList 组件的 props。

问题是您没有将此函数作为 prop 传递给渲染方法中的任何子级。

您应该将以下 Prop 赋予组件的渲染方法中的一个子组件。如果您不这样做,那么该函数将永远不会被调用。

onSave={ () => _saveEditedTask() }

关于javascript - Redux 状态更新不会传递到我的组件无状态函数中的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41216157/

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