如何将道具(尤其是ID)传递到另一个组件?

时间:2020-07-29 01:04:02

标签: react-native redux navigation react-props

这是我首次尝试创建react native项目(也带有redux),我有一个与传递信息有关的问题。我有一个看起来像这样的API:

    override func encode(with coder: NSCoder) {
        coder.encode(clickCount, forKey: "clickCount")
    }

    required init?(coder: NSCoder) {
        super.init(coder: coder)
        clickCount = coder.decodeObject(forKey: "clickCount") as? [Int] ?? [Int]()
    }

每个“模块”都有许多主题。我希望模块显示在一个屏幕上,并且希望每个课程的主题在单击按钮后出现。到目前为止,我已经知道了:

    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        
        if let vc = storyboard?.instantiateViewController(identifier: "Detail") as? DetailViewController {
            
            vc.selectedImage = pictures[indexPath.row]
            
            vc.totalPictures = pictures.count
            
            vc.selectedPictureNumber = (pictures.firstIndex(of: vc.selectedImage ?? "Error") ?? 0) + 1

            clickCount[indexPath.row] += 1
            
            navigationController?.pushViewController(vc, animated: true)
            
        }
        
    }

这只是一个片段,但我想知道如何传递有关该类的特定信息,以便可以检索其中包含的所有主题并将它们显示在下一个屏幕上。任何指针都很棒!谢谢!

1 个答案:

答案 0 :(得分:0)

我想您是在问如何将“参数”传递到导航路线,是的,确实渲染了可以从导航路线参数接收道具的组件。

就您而言,

 this.props.navigation.navigate('Topics')

应更改为;

  this.props.navigation.navigate('Topics', {id:item.id})

导航到“主题”路线后,该组件将能够从中读取“ id”值;

props.route.params.id

路由参数将是在this.props.navigation.navigate方法中路由名称之后传递的任何对象。