Как изменить функциональный компонент на классный компонент в реагируемой сортировке
Как поменять мой functional
компонент к class
Компонент мой код ниже
const SortableList = SortableContainer(
({ items, SpeedGraph, StepLengthGraph, CadenceGraph, PaceGraph, graphPopupHandler}) => (
<div>
{items.map((value, index) => (
<SortableItem
key={`item-${index}`}
SpeedGraph={SpeedGraph}
StepLengthGraph={StepLengthGraph}
CadenceGraph={CadenceGraph}
PaceGraph={PaceGraph}
graphPopupHandler={graphPopupHandler}
index={index}
value={value}
/>
))}
</div>
)
);
Я пытаюсь изменить этот код, но не работает для меня.
2 ответа
Решение
В компонентах класса вам нужно реализовать render
функция и вернуть ваш jsx из этой функции и получить доступ к реквизиту с помощью this.props
В то время как в функциональных компонентах вы просто возвращаете jsx непосредственно из функции и получаете доступ к реквизитам, используя первый аргумент в этой функции.
class SortableList extends React.Component {
render(){
const { items, SpeedGraph, StepLengthGraph, CadenceGraph, PaceGraph, graphPopupHandler} = this.props;
return(
<div>
{items.map((value, index) => (
<SortableItem
key={`item-${index}`}
SpeedGraph={SpeedGraph}
StepLengthGraph={StepLengthGraph}
CadenceGraph={CadenceGraph}
PaceGraph={PaceGraph}
graphPopupHandler={graphPopupHandler}
index={index}
value={value}
/>
))}
</div>
)
}
}
На этот вопрос уже отвечали (но у меня слишком низкое количество повторений, чтобы пометить), и это довольно просто, используя документы. Но вот начало:
class SortableList extends React.Component {
constructor(props) {
super(props);
//any initialization here or in other react class methods
}
render() {
const {items, SpeedGraph, StepLengthGraph, CadenceGraph, PaceGraph, graphPopupHandler} = this.props;
return <div>
{items.map((value, index) => (
<SortableItem
key={`item-${index}`}
SpeedGraph={SpeedGraph}
StepLengthGraph={StepLengthGraph}
CadenceGraph={CadenceGraph}
PaceGraph={PaceGraph}
graphPopupHandler={graphPopupHandler}
index={index}
value={value}
/>
))}
</div>;
}
}