Сборка с пользовательскими расширениями файлов в реагировать родной

Я занимаюсь разработкой приложения, предназначенного для разных типов пользователей. Я хочу создавать разные пользовательские интерфейсы, разные тестовые сценарии для каждого варианта с одинаковой логикой в ​​одном и том же репо. Допустим, если у меня есть 3 вида пользователей (X,Y,Z), поэтому я хотел достичь, как это, index.X.js, index.Y.js ,index.Z.js, Если нет файла варианта, он должен вернуться к значению по умолчанию index.js, Поэтому, когда я хочу создать приложение для пользователей типа X, я могу создать приложение со всеми .X.js файлы.

Ниже я ознакомился с двумя пакетами: https://github.com/wix/react-native-repackager и https://github.com/elsassph/webpack-require-variant. Первый пакет поддерживается только для определенных версий реактивной системы, и я не уверен, что не столкнусь с какими-либо проблемами из-за их использования (Запуск в CI, Запуск тестовых сценариев, Горячая перезагрузка и т. Д.).

Есть ли стандартное решение этой проблемы?

1 ответ

Вы можете добиться того же путем условного рендеринга вместо расширения. Просто визуализируйте соответствующий компонент, соответствующий вашему состоянию. Здесь User1, User2, User3 являются компонентами.

Расширения файлов используются для конкретного кода платформы. ios а также android лайк index.ios.js а также index.andoid.js

https://facebook.github.io/react-native/docs/platform-specific-code.html

class Demo extends Component {
    render() {
        const users = ["user1","user2","user3"];
        let dynamicComponent;
        switch(users[1]) {
            case "user1":
                dynamicComponent = <User1/>;
            break;
            case "user2":
                dynamicComponent = <User1/>;
            break;
            case "user3":
                dynamicComponent = <User1/>;
            break;
        }
        return (
            <View>
                {dynamicComponent}
            </View>
        );
    }
}

Эти компоненты могут быть целым приложением пользователя с соответствующим дизайном.

Другие вопросы по тегам