поэтому я разрабатываю приложение для хранения небольших книг в React + Redux. Но по какой-то причине представление не будет отображаться, и я не знаю, почему. Код также не вызывает ошибку.React and Redux not render view
Это структура моего приложения.
src
----actions
----components
----App.js
----containers
----bookList.js
----reducers
----book.js
----index.js
--index.js
Вот отдельные файлы
index.js/ГКЗ
import React from 'react';
import ReactDOM from 'react-dom';
import App from './components/App.js';
import {Provider} from 'react-redux';
import {createStore} from 'redux';
import rootReducer from './reducers/index.js';
let store = createStore(rootReducer);
ReactDOM.render(
<Provider store={store}>
<App />
</Provider>,
document.getElementById('root')
);
/components/App.js
import React from 'react';
import bookList from '../containers/bookList.js';
const App =() => {
return (
<div>
<bookList />
</div>
)
}
export default App;
/containers/bookList.js
import React, {Component} from 'react';
import {connect} from 'react-redux';
class bookList extends Component {
renderList() {
return this.props.books.map(book => {
return <li key={book.title}>{book.title}</li>
});
}
render() {
return (
<ul className='list-group col-sm-4'>
{this.renderList()}
</ul>
)
}
}
const mapStateToProps = (state) => {
return {
books: state.books
}
}
export default connect(mapStateToProps)(bookList);
/reducers/index.js
import {combineReducers} from 'redux';
import books from './books.js';
const rootReducer = combineReducers({
books: books
});
export default rootReducer;
/reducers/book.js
const books =() => {
return [
{title: 'JavaScript'},
{title: 'Harry Potter'},
{title: 'Some Random Title'}
]
}
export default books;
Как я уже говорил в начале, абсолютно никаких ошибок не бросают, и любые console.log заявления I попытка выполнить в файле bookList.js, не отображается.
Его как этот файл не читается компилятором Babel.
Однако, когда я регистрирую функцию bookList, которую я импортирую из bookList.js в App.js, она выводит на экран функцию подключения. Таким образом, этот файл явно импортируется.
Определить «не будет». Есть ли элементы на странице? Или вы имеете в виду, что магазин не передается элементам? – shennan
@shennan - Кажется, что магазин не передается элементам.Таким образом, функции mapStateToProps получают объект состояния и возвращает список реквизитов книг в контейнер bookList. Однако, похоже, это не происходит, и если console.log (состояние) изнутри mapStateToProps, я не получаю никакого вывода. –
@ZaidHumayun, что результат, когда вы помещаете console.log (this.props.books) в renderList перед операцией return? – Grajek