簡體   English   中英

不呈現組件onClick

[英]Not rendering component onClick

我正在嘗試渲染的組件:

import React, { Component } from 'react';

export default class QueryPrint extends Component {

    render() {
        console.log('working');

        return (
            <div>Hello</div>
        )
    }

}

試圖調用它的組件:

import React, { Component } from 'react';
import { connect } from 'react-redux';

import {
    Button,

} from 'reactstrap';

import QueryPrint from './bq_print';

class QueryResults extends Component {
    constructor(props) {
        super(props);
        this.print = this.print.bind(this);
    }

    print() {
        console.log('Clicked');
        return (
            <QueryPrint />
        );
    }

    render() {
        return (
            <Button 
                className='cuts-btn' 
                color='success' 
                onClick={this.print}
            >
                Print
            </Button>
        )
    }
}

function mapStateToProps(state) {
    return {
        query_data: state.results.query_data
    }
}

export default connect (mapStateToProps, null)(QueryResults);

console.log('clicked')正在工作,但是應該在該方法中呈現的組件不起作用-沒有console.log('working')<div>

從點擊回調中返回內容無效。 如果要渲染某些東西,可以在render方法中進行。 點擊回調的工作是調用this.setState(),然后將開始渲染。

也許是這樣的:

class QueryResults extends Component {
  constructor(props) {
    super(props);
    this.print = this.print.bind(this);
    this.state = {
      queryPrint: false,
    }
  }

  print() {
    console.log('Clicked');
    this.setState({ queryPrint: true })
  }

  render() {
    const { queryPrint } = this.state;
    return (
      <React.Fragment>
        {queryPrint && <QueryPrint />}
        <Button 
          className='cuts-btn' 
          color='success' 
          onClick={this.print}
        >
          Print
        </Button>
      </React.Fragment>
    )
  }
}

React Native的工作方式有所不同。 它更像一個Web應用程序-您需要導航到其他組件。

仔細看這個例子: https : //facebook.github.io/react-native/docs/navigation

另外,如果您只想進行部分屏幕更改,則需要將其包含在自己的渲染中,並通過標志或狀態機對其進行控制。

https://facebook.github.io/react-native/docs/direct-manipulation

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM