Przykład przejścia do animacji provided in the v4 docs wydaje mi się nieco zawikłany, ponieważ przedstawia zanikanie tego samego komponentu i wyjścia oraz dostosowanie koloru tła.Przykład transformacji Router v4 Animowany przykład
Próbuję zastosować tę technikę do bardziej realnego przykładu zaniku jednego komponentu i drugiego, ale nie mogę go zmusić do poprawnego działania (wydaje się, że najpierw zanika pierwszy, drugi pojawia się, a przejście to działa tylko w jedną stronę (powrót przycisku powoduje brak przejścia)
Oto mój kod, który wykorzystuje uproszczoną wersję MatchWithFade
od np.
import React from 'react';
import { TransitionMotion, spring } from 'react-motion'
import { HashRouter, Match, Miss } from 'react-router';
import Home from './components/Home';
import Player from './components/Player';
import FormConfirmation from './components/FormConfirmation';
const App =() => (
<HashRouter>
<div className="App">
<MatchWithFade exactly pattern="/" component={Home} />
<MatchWithFade pattern="/player/:playerId" component={Player} />
<MatchWithFade pattern="/entered" component={FormConfirmation} />
<Miss render={(props) => (
<Home players={Players} prizes={Prizes} {...props} />
)} />
</div>
</HashRouter>
);
const MatchWithFade = ({ component:Component, ...rest }) => {
const willLeave =() => ({ zIndex: 1, opacity: spring(0) })
return (
<Match {...rest} children={({ matched, ...props }) => (
<TransitionMotion
willLeave={willLeave}
styles={matched ? [ {
key: props.location.pathname,
style: { opacity: spring(1) },
data: props
} ] : []}
>
{interpolatedStyles => (
<div>
{interpolatedStyles.map(config => (
<div
key={config.key}
style={{...config.style}}
>
<Component {...config.data}/>
</div>
))}
</div>
)}
</TransitionMotion>
)}/>
)
}
export default App;
i sobie sprawę, że to pytanie jest prawie duplikatem this one, jednak ma ono akceptowaną odpowiedź, która w rzeczywistości nie Odpowiedz na pytanie.
Nie jestem szczególnie zaznajomiony z "reaktywnym ruchem", ale wygląda na to, że '' ma "willEnter' prop. Czy próbowałeś tego użyć? –
Po prostu dzikie domysły: Czy masz ustawiony stały/absolutny zestaw pozycji? –
Nie jestem zbyt obeznany z "reaktywnym ruchem", ale patrząc na twój kod, zastanawiam się, czy ma to związek z indeksem Z, który próbujesz przenieść. Twoje domyślne style dla komponentu 'TransitionMotion' nie mają indeksu Z, więc może to przeszkadzać w przejściu. Spróbuj zastąpić tę linię czymś w rodzaju: 'style: {zIndex: 2, nieprzezroczystość: wiosna (1)}' - Nie wiem, czy bit 'spring' jest konieczny? Ale możesz spróbować również owijać swoje z-indeksy. –