Aleksey
Ну по сути это санка
она применена в в сторе через applyMiddleware но в хуке useEffect не срабатывает функция
Дмитрий
Valentin
Vitaliy
доброе утро подскажите пожалуйста если я сохраняю реф через this.myRef = React.createRef();
то я стучусь к самому дом узлу через this.myRef.current.focus()
а если я сохраняю реф через коллбек реф
ref={el => this.myRef = el}
то тогда я стучусь к дом елементу через this.myRef.focus()
верно?
Valentin
Oleksii
привет друзья, у меня задача, сделать карту точь в точь как у https://www.mapiful.com/editor/location/, я перепробовал кучу редакторов, такие как mapbox editor, openstreetmap, maputnik, но они не подходят, потому что, на некоторых не достаточный функционал, на mapbox editor начинают пропадать дороги при отдалении (zoom) карты. Прошу помочь решить проблему, посоветуйте редактор который сможет решить мою проблему.
Тимофей 🛴
Вот и диспатч этот getService в эффекте и все. Только правильные deps передай в useEffect. (Правда getService у тебя какой то кривой)
Aleksey
Anonymous
Какой есть курс нормальный на понимание как взаимодействовать с фронт + бек и получать состояние из базы данных в json для последующего вывода на фронте? Или для начала нужно скопипастить и понять вывод из просто файла json и только после этого двигаться дальше?
Вроде как посмотреть в беке ничего сложного нет, всего на 3 функциях можно делать сайт - база данных, get / пост что делать после этого, ну и преобразование файлов например из одного формата в другой с базы данных.
Проблема только в том что в 10 видео по крупицам все это
Андрей
Создал компонент который защищает роут.
И не могу из редукс-стора прочитать что либо, что не так делаю ?
Андрей
Так можно же делать ?
Сергей
Ребят, а есть какой-гибудь еще способ разработки своих пакетов кроме yarn link?
Ruslan
Ruslan
не хочешь в npm, можно с github
Сергей
создаешь пакет, публикуешь в npm?
нет, чтобы тестировать и разрабатывать пакеты локально. yarn link не оч удобно, постоянные косяки выплывают, частенько с типизацией связано.
🦜
Denis
Ребзя, подскажите, а имеется ли разнится в том если мы в редере будем отправлять пустой массив или null или они на этампе построения структурного дерева отвалятся оба?
render() {
return (<div>{[]}</div>)
}
ИЛИ
render() {
return (<div>{null}</div>)
}
Denis
или я что то недопонимаю?
Ivan
Oruj
я могу поменять их мместами?
Yuriy
Oruj
Нет)
почему?
там где я вызываю эту функцию, там я тоже меняю местами
Asan
Подскажите как правильно реализовать, есть посты с комментами, послать 2 запроса и загрузить посты и комменты в redux, а потом при открытии полного поста уже внутри отображть комменты из redux или при открытии поста слать запрос на сервер и внутри полного поста добавлять комменты в redux потом их отображать?
Anonymous
Anonymous
Если это у тебя страница "список постов" то комментарии как правило не нужны тебе на страрте, если нужно сразу показывать хотябы пару последних коментов, то правильнее вложить данные сразу при получении постов, без отедльных запросов, а далее уже подгружать
Asan
Yertai
Всем привет ребят
Asan
Yertai
Почему на гите 16 строк
16 lines (15 sloc)
а выдает 15)
{
"name": "Home",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"jquery": "^3.4.1"
}
}
Anonymous
Yertai
Перенос test не реагирует
Anonymous
16 строка всегда добавляется в конец файла как \0
Maksim
Yertai
Asan
Yertai
Евгений
Всем привет, подскажите в чем проблема
есть компонент const mapStateToProps = (store) => {
return {
systemInformation: store.systemInformation,
registration: store.registration
}
};
const mapDispatchToProps = {
setSourceData,
requestPostMethod,
requestMethod
}
export class TermsOfUse extends Component {
constructor(props) {
super(props)
}
componentDidMount(){
}
componentWillUnmount() {
this.props.setSourceData({
sourceId: '/termsofuse',
sourceTitle: 'Пользовательское соглашение'
});
}
render() {
const { content } = this.props
return (content ? <div dangerouslySetInnerHTML={{ __html: content }} /> : null)
}
}
export default withRouter(connect(mapStateToProps, mapDispatchToProps)(TermsOfUse));
Для него пытаюсь написать тест с моком стора
describe('Тесты умных компонентов с коннектом', ()=>{
const initialState = {
systemInformation: 'systemInformation',
registration: 'registration'
}
const mockStore = configureStore()
it('+++ render the connected(SMART) component', () => {
let store = mockStore(initialState);
let container = shallow(<connectedTermsOfUse store={store} /> );
console.log(store,'<<<<<<<<<<eto store')
expect(container.prop('systemInformation')).toEqual(initialState.systemInformation);
})
})
но в стор не прокидывается тот стейт который я пихаю, в чем может быть дело?
Евгений
Есть кто-то здесь, кто мокал стор с помощью jest?)
Victor
А где тесте компонент TermsOfUse?
Victor
Коллеги, кто-нибудь пользовался плагином для eslint react-hooks/rules-of-hooks и react-hooks/exhaustive-deps?
Евгений
А где тесте компонент TermsOfUse?
import React from 'react'
import { shallow, mount } from 'enzyme'
import renderer from 'react-test-renderer'
import { shallowToJson } from 'enzyme-to-json'
import connectedTermsOfUse, {TermsOfUse} from '../components/Technical/TermsOfUse'
import configureStore from 'redux-mock-store'
describe('Тесты маунта компонента', ()=>{
const propsForComponent = { content: "<div>'Контент для тестирования рендера'</div>"} // описываем props
jest.spyOn(TermsOfUse.prototype, 'componentDidMount')
it('renders correctly without content', () => {
const wrapper = shallow(<TermsOfUse {...propsForComponent}/>)
expect(TermsOfUse.prototype.componentDidMount.mock.calls.length).toBe(1)
})
})
describe('Тесты по TermsOfUse c помощью снепшотов', () => {
it('renders correctly without content', () => {
const propsForComponent = { content : null }
let myComponent = shallow(<TermsOfUse {...propsForComponent}/>)
expect(shallowToJson(myComponent)).toMatchSnapshot();
});
it('renders correctly with content', () => {
const propsForComponent = { content: "<div>'Контент для тестирования рендера'</div>"} // описываем props
const myComponent = shallow(<TermsOfUse {...propsForComponent}/>)
expect(shallowToJson(myComponent)).toMatchSnapshot();
});
})
describe('Тесты умных компонентов с коннектом', ()=>{
const initialState = {
systemInformation: 'systemInformation',
registration: 'registration'
}
const mockStore = configureStore()
it('+++ render the connected(SMART) component', () => {
let store = mockStore(initialState);
let container = shallow(<connectedTermsOfUse store={store} /> );
console.log(store,'<<<<<<<<<<eto store')
expect(container.prop('systemInformation')).toEqual(initialState.systemInformation);
})
})
Victor
import React from 'react'
import { shallow, mount } from 'enzyme'
import renderer from 'react-test-renderer'
import { shallowToJson } from 'enzyme-to-json'
import connectedTermsOfUse, {TermsOfUse} from '../components/Technical/TermsOfUse'
import configureStore from 'redux-mock-store'
describe('Тесты маунта компонента', ()=>{
const propsForComponent = { content: "<div>'Контент для тестирования рендера'</div>"} // описываем props
jest.spyOn(TermsOfUse.prototype, 'componentDidMount')
it('renders correctly without content', () => {
const wrapper = shallow(<TermsOfUse {...propsForComponent}/>)
expect(TermsOfUse.prototype.componentDidMount.mock.calls.length).toBe(1)
})
})
describe('Тесты по TermsOfUse c помощью снепшотов', () => {
it('renders correctly without content', () => {
const propsForComponent = { content : null }
let myComponent = shallow(<TermsOfUse {...propsForComponent}/>)
expect(shallowToJson(myComponent)).toMatchSnapshot();
});
it('renders correctly with content', () => {
const propsForComponent = { content: "<div>'Контент для тестирования рендера'</div>"} // описываем props
const myComponent = shallow(<TermsOfUse {...propsForComponent}/>)
expect(shallowToJson(myComponent)).toMatchSnapshot();
});
})
describe('Тесты умных компонентов с коннектом', ()=>{
const initialState = {
systemInformation: 'systemInformation',
registration: 'registration'
}
const mockStore = configureStore()
it('+++ render the connected(SMART) component', () => {
let store = mockStore(initialState);
let container = shallow(<connectedTermsOfUse store={store} /> );
console.log(store,'<<<<<<<<<<eto store')
expect(container.prop('systemInformation')).toEqual(initialState.systemInformation);
})
})
сделай пример в codesandbox каком, эту простыню нереально прочитать
Евгений
я его обозвал connectedTermsOfUse
Евгений
но что странно, что он отрисовывается в вскоде бледным, как-будто не используемый компонент
Евгений
Nick
Ребята привет, только изучаю React,
как бросить event в component
renderSquare(i: number) {
return <Square onClick={this.onHandleClick()} index={i}/>
}
Vladimir
Shimon
Вопрос по поводу добавления иконок и картинок. Добавить картинку через import можно только вне компонента. А что если компонет получает имя файл как пропс? Нормально ли посупать следующим образом?
Vladimir
Тимофей 🛴
Shimon
Ок. А почему то, что я сделал - не верный подход? Вроде работает...
Ivan
Victor
Тимофей 🛴
Shimon
👍 ясно
Евгений
Victor
Евгений
пересохранил
Victor
it("renders correctly without content", () => {
const wrapper = shallow(<TermsOfUse {...propsForComponent} />);
expect(TermsOfUse.prototype.componentDidMount.mock.calls.length).toBe(1);
});
1. сначала ты создал враппер - ок
2. потом ты лезешь не в созданный инстанс, а в класс компонента. Даже еслинт ругается - мол, создал wrapper, но не используешь его
Евгений
Спасибо) но вопрос не в этом, а в после тесте с коннетом, но за это огромное спасибо)
Alexander
Подскажите, столкнулся с такой проблемой. При фильтрации, если быстро печатать, возвращаются неактуальные данные несколько раз и только потом правильные. Как с этим бороться?
Victor
Егор
Ivan
Oleg
Всем привет. подключаю axios через CDN. в IE11 пишет "Promise" не определено, при том что официально axios поддерживает IE11
Alexander
а проверь в консоле, напиши код с промисом без axios, сработает?
Oleg
Oleg
понял теперь. в axios 0.6 убрали полифил и нужно самому