我是SwiftUI的新手,我正在尝试创建一个包含大学学位的每个模块的列表。我希望(单击时)每个模块可以导航到单独的新视图。这是我希望实现的目标:
首页->列表页->每个模块页面。
NavigationLink
似乎对所有列表元素只有一个可能的目的地。有什么办法吗?先感谢您。
这是我当前的代码:
struct ListView: View {
var modules: [Module] = []
var body: some View {
NavigationView {
List(modules) { module in
NavigationLink(destination: QuizView()) {
VStack(alignment: .leading) {
Text(module.name)
Text("\(module.questions) questions")
.foregroundColor(.secondary)
.font(.subheadline)
}
}
}
.navigationBarTitle(Text("Modules"))
}
}
}
答案 0 :(得分:0)
您可以尝试根据某个值(例如import React, {Component} from 'react';
import NavigationItems from './NavigationItems/NavigationItems';
import classes from './Navigation.module.css';
import {connect} from 'react-redux';
const mapStateToProps = state => {
console.log(state)
return {
categoryURL: state.categoryUrl
};
};
class navigation extends Component {
componentDidMount() {
console.log(this.props.categoryUrl);
}
componentDidUpdate(prevProps, prevState, snapshot) {
console.log('NAVIGATION!', this.props.categoryUrl);
}
render() {
let nav = null;
if (this.props.categoryUrl) {
nav = (
<div className={classes.Navigation}>
<NavigationItems/>
</div>
)
}
return (
<>
{nav}
</>
)
}
}
export default connect(mapStateToProps, null)(navigation);
)返回特定的View
:
module.name
var modules: [Module] = []
var body: some View {
NavigationView {
List(modules) { module in
NavigationLink(destination: moduleView(name: module.name)) {
VStack(alignment: .leading) {
Text("\(module.id)")
}
}
}
.navigationBarTitle(Text("Modules"))
}
}