Тип Ошибка свойство не определено, даже если действие сработало, определяя его - PullRequest
0 голосов
/ 27 мая 2020
• 1000 Теперь указанный фрагмент c в ошибке работает из моего исходного местоположения, которое обозначено ниже на моем снимке экрана, что кнопка спекуляции перенесет вас на визуализированный маршрут шоу под ним. Однако кнопка, которая появляется после того, как вы задали новый вопрос и заметили, что они используют не тот же фрагмент, а одну ошибку. Я также добавляю фрагмент для кнопок.

* редактировать 1 добавление шоу. js

show.js

// built-in(lifecycle) methods imported here
import React, { Component } from 'react'

// import components from local 
import Graph from '../components/Graph'
import Notes from '../components/Notes'
import Questions from '../components/Questions'

//imbrl allows us to enable routing by updating url and rendering needed component listed in routeer
import { NavLink } from 'react-router-dom'

//bootstrap WIP
import Button from 'react-bootstrap/Button'
import Row from 'react-bootstrap/Row'
import Col from 'react-bootstrap/Col'
import Card from 'react-bootstrap/Card'

// access state from redux store
import { connect } from 'react-redux'

class Show extends Component {

    render() {
    // variables for objects
    const graph = this.props.graphs.find(graph => { return graph.id === parseInt(this.props.match.params.id)})
    const notes = this.props.notes.filter(note => note.graph.id === graph.id)
    const questions = this.props.questions.filter(question => question.graph.id === graph.id)


    // if graph exists it loads all corresponding notes and questions with it
    if (graph) {

        return (
            <Row>
                <Col md={3}>
                    <Notes graph={graph} notes={notes} />
                </Col>

                <Col md={6} >
                    <Card>
                        <Graph graph={graph}/>
                    </Card>

                    <NavLink
                    to={`/graphs/${graph.id}/interact`}>
                        <Button>Interact</Button>
                    </NavLink>
                </Col>


                <Col md={3}>
                    <Questions graph={graph} questions={questions} />
                </Col>
            </Row>
        )
    } else {
        return (
            <div>
                <NavLink
                style={{marginRight: '10px'}}
                to="/">
                <Button variant="dark" size="lg" block>Add Data to get started</Button>
                </NavLink>
            </div>
         )
        }
    }
}


// this will need access to the objects
const mapStateToProps = state => {
    return {
        graphs: state.graphs,
        notes: state.notes,
        questions: state.questions
    }
}


export default connect (mapStateToProps)(Show)
graphinput.js

import React, { Component } from 'react'

// import actions future?
import { addNote } from '../actions/addSpeculations'
import { addQuestion} from '../actions/addSpeculations'

// browser url routing render component as needed
import { NavLink } from 'react-router-dom'

// import local components
import Note from '../components/Note'
import Question from '../components/Question'

// bootstrap styling
import Button from 'react-bootstrap/Button'
import Form from 'react-bootstrap/Form'

// allows access to redux store this is a stateful component
import { connect } from 'react-redux'

class GraphInput extends Component {
// initial state placejolders 
    state ={
        note: {
            content: ""
        },
        question: {
            content: ""
        },
        visible: false,
        view: false
        }
        // state will be updated everytime the form value changes
        handleChange = (event) => {
            this.setState({
                [event.target.name]: {content: event.target.value, graph_id: this.props.graph_id}
            })
        }
        // visible key will show as true to confirm before calling fetch.
        handleSubmit = (event) => {
            event.preventDefault()
            this.setState({visible: true})
        }

        handleSave = () => {
            this.props.addNote(this.state.note)
            this.props.addQuestion(this.state.question)
            this.setState({
                note: {content: ""},
                question: {content: ""},
                visible: false,
                view: true
            })

        }

        // if user cancels submission, state should reset to initial values
        handleCancel = () => {
            this.setState({
                note: {content: ""},
                question: {content: ""},
                visible: false,
                view: false
            })
        }

        render () {
            // Need to check current state to base what return should be used for what user interaction has done.
            /*const validated= this.state.note.content.length > 20 && this.state.note.content.length > 20*/

            if (this.state.visible === false && this.state.view === false){
                /// render form and graph
                return (
                    <div>
                            <h3> Add your Observations or Speculation below. </h3>

                        <Form onSubmit={event => this.handleSubmit(event)} >
                            <Form.Group>
                                <Form.Control size="lg" type="text" name="note" placeholder="Make an observation." value={this.state.note.content} onChange={event => this.handleChange(event)} />
                            </Form.Group>

                            <Form.Group>
                                <Form.Control size="lg" type="text" name="question" placeholder="Ask a question" value={this.state.question.content} onChange={event => this.handleChange(event)} />
                            </Form.Group>

                            <Button  type="submit" >Add</Button>
                        </Form>
                    </div>

                )
            } else if (this.state.visible === true && this.state.view === false) {
                /// rwendering draft to confirm submission
                return (
                    <div>
                        <Note note={this.state.note} />
                        <Question question={this.state.question} />
                        <Button type="submit" onClick={this.handleSave}> Save Speculation to Database</Button>
                        <Button type="submit" variant="danger" onClick={this.handleCancel}>Cancel</Button>
                    </div>
                )
            } else if (this.state.view === true) {
                // after saving, user can now navigate to view all 
                return (
                    <NavLink
                        style={{ marginRight: '10px'}, {backgroundColor: 'transparent'}}
                        to={`/graphs/${this.props.graph_id}/speculations`}
                        graph={this.props.graph}>
                        <Button size="lg" block>View All Speculation for This Graph</Button>
                    </NavLink>
                )
        }

    }
}


// only state needed is graph speculations  for specific graph
const mapStateToProps = (state) => {
    return {
        graph: state.graph
    }
}

// Dispatch to props for Notes and Questions
export default connect(mapStateToProps, {addNote, addQuestion})(GraphInput)
Broken Button
<NavLink
   style={{ marginRight: '10px'}, {backgroundColor: 'transparent'}}
   to={`/graphs/${this.props.graph_id}/speculations`}
   graph={this.props.graph}>
  <Button size="lg" block>View All Speculation for This Graph</Button>
</NavLink>
 Working Button
                <NavLink
                    style={{ marginRight: '10px'}}
                    to={`/graphs/${this.props.graph.id}/speculations`}
                    url={this.props.graph.screenshot_url} >
                        <Button variant="success" >
                            Speculations
                        </Button>
                </NavLink>

Error

Это кнопка, которая работает Working Speculation Button Это здесь кнопка должна вас Intended location after the button is clicked Эта кнопка не go на шоу с указанными c примечаниями и вопросами графика. (Оба используют один и тот же фрагмент для идентификации графика и его идентификатора или должны) Not working button

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...