Если все предыдущие задания находятся в Топологически упорядоченном порядке. Затем, если вы добавите ребро, которое, похоже, заблокирует сортировку и не может быть исправлено, тогда у вас есть цикл.
https://stackoverflow.com/a/261621/831850
Итак, если у нас есть отсортированный список узлов:
1, 2, 3, ..., x, ..., z, ...
Such that each node is waiting for nodes to its left.
Скажем, мы хотим добавить ребро из x-> z. Хорошо, что, похоже, тормозит сортировку. Таким образом, мы можем переместить узел в точке x в положение z + 1, которое будет фиксировать сортировку iif, если ни один из узлов (x, z] не имеет ребра к узлу в точке x.
Так как вы используете react-navigation
, тогда вы устанавливаете функцию в компоненте заголовка.
componentDidMount
установить функцию в качестве параметра, используя setParam
getParam
в заголовке навигации. . Вот так это будет выглядеть в очень простом компоненте.
export default class Screen1 extends React.Component {
static navigationOptions = ({ navigation }) => {
const { params } = navigation.state; // this is included because you had added it and you may require the params in your component
return {
headerTitle: <PostTitle {...params} handleDelete={navigation.getParam('handleDelete')} />, // grab the function using getParam
};
};
handleDelete = () => {
alert('delete')
}
// set the function as a param in your componentDidMount
componentDidMount() {
this.props.navigation.setParams({ handleDelete: this.handleDelete });
}
render() {
return (
<View style={styles.container}>
<Text>Screen1</Text>
</View>
)
}
}
Тогда в вашем компоненте PostTitle
вы можете использовать функцию, которую вы только что передали, вызвав this.props.handleDelete
Вот закуска, которая показывает основные функции https: // snack .expo.io / @ andypandy / functions-in-a-navigation-header
Подробнее о настройке функций в заголовке навигации можно прочитать здесь