Я работаю над викториной с группами ответов (поэтому у вопроса 1 есть 4 варианта и т. Д.).Я попытался сначала выбрать варианты ответа в виде переключателей, а затем с помощью React-Select (https://github.com/JedWatson/react-select).
. При использовании переключателей я получаю 8 пустых переключателей. При использовании Select, Iполучить 8 групп ответов, но текст отсутствует. Я знаю только потому, что щелкаю, чтобы увидеть, что происходит.
Я подозреваю, что неправильно вхожу в массивы и / или неправильно связываю что-то, номои поиски до сих пор не дали результатов. Текст к вопросам отображается правильно, поэтому я не буду вставлять его ниже. Я включил и радио, и попытки Выбрать, чтобы понять, какой из них работает лучше всего.
Репо: https://github.com/irene-rojas/pixar-react. Советы с благодарностью.
App.js
import React, { Component } from 'react';
import './App.css';
import Timer from "./Timer";
import Questions from "./Questions/Questions.js";
class App extends Component {
render() {
return (
<div className="parallax">
<div className="App">
<div className="wrapper">
<div className="header">
<h1>Pixar Trivia!</h1>
</div>
<Timer />
<div className="questionSection">
<Questions />
</div>
</div>
</div>
</div>
);
}
}
export default App;
Radio.js (это моя попытка ответов на радио кнопки. Я включаю только 3из 8 групп ответов для экономии места)
import React, { Component } from 'react';
class Radio extends Component {
state = {
answerChoices: [
{answers1: [
{
label: "2001: A Space Odyssey",
value: false
},
{
label: "The Shining",
value: true
},
{
label: "One Flew Over the Cuckoo's Nest",
value: false
},
{
label: "The Godfather",
value: false
}
]},
{answers2: [
{
label: "Luxo Ball",
value: false
},
{
label: "Luxo",
value: false
},
{
label: "Luxo, Jr.",
value: true
},
{
label: "Tinny",
value: false
}
--------- skip to a 2 option group ------
{answers7: [
{
label: "Boo",
value: false
},
{
label: "Kitty",
value: true
}
]},
]
};
handleOptionChange = (event) => {
event.preventDefault();
console.log("clicked");
// checked={true}
};
render() {
return (
<div className="radio">
<form>
{this.state.answerChoices.map(answer => {
return (
<input
type="radio"
key={answer.id}
value={answer.value}
defaultChecked={false}
onClick={this.handleOptionChange}
/>
)
})}
</form>
</div>
);
}
}
export default Radio;
answers.js (это попытка выбора ответа).
import React, { Component } from "react";
import Select from "react-select";
const answerChoices = [
{answers1: [
{
label: "2001: A Space Odyssey",
value: false
},
{
label: "The Shining",
value: true
},
{
label: "One Flew Over the Cuckoo's Nest",
value: false
},
{
label: "The Godfather",
value: false
}
]},
{answers2: [
{
label: "Luxo Ball",
value: false
},
{
label: "Luxo",
value: false
},
{
label: "Luxo, Jr.",
value: true
},
{
label: "Tinny",
value: false
}
]},
----------- skip to 2 option group ------
{answers7: [
{
label: "Boo",
value: false
},
{
label: "Kitty",
value: true
}
]},
]
class Answers extends Component {
state = {
selectedOption: null,
}
handleChange = (selectedOption) => {
this.setState({ selectedOption });
console.log(`Option selected:`, selectedOption);
}
render() {
const { selectedOption } = this.state;
return (
<Select
value={selectedOption}
onChange={this.handleChange}
options={answerChoices}
/>
);
}
}
export default Answers;